如何在Ruby/Python中基于n、k参数实现组合与排列计算
100选3需求实现方案(Ruby + Python)
需求包含两个核心实现点:计算组合数100C3、从100个可区分元素中无放回随机抽取3个元素,两种语言的实现方式分别如下:
Python实现
依赖说明
所有实现均使用Python标准库,无需安装第三方依赖。
- 计算组合数:Python 3.10及以上版本内置
math.comb方法可直接计算组合数 - 随机抽取:使用标准库
random.sample方法实现无放回随机采样
示例代码
import math import random # 1. 计算100C3的组合数 c_100_3 = math.comb(100, 3) print(f"100选3的组合数为:{c_100_3}") # 输出结果为161700 # 2. 模拟100只可区分的狗,随机挑选3只 # 用1-100的编号代表不同的狗,可替换为实际的狗的标识数据 dogs = list(range(1, 101)) selected = random.sample(dogs, 3) print(f"随机选中的3只狗的编号为:{selected}")
Ruby实现
依赖说明
所有实现均使用Ruby内置语法,无需引入额外依赖。
- 计算组合数:使用整数内置的
combination方法生成组合迭代器,取长度即可得到组合数 - 随机抽取:使用数组内置的
sample方法实现无放回随机采样
示例代码
# 1. 计算100C3的组合数 c_100_3 = 100.combination(3).size puts "100选3的组合数为:#{c_100_3}" # 输出结果为161700 # 2. 模拟100只可区分的狗,随机挑选3只 # 用1-100的编号代表不同的狗,可替换为实际的狗的标识数据 dogs = (1..100).to_a selected = dogs.sample(3) puts "随机选中的3只狗的编号为:#{selected}"
内容的提问来源于stack exchange,提问作者user15515518
相关产品推荐
相关产品推荐

