You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:06:05