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

math.comb()函数的用途是什么?请予以解释并提供示例

理解Python的math.comb()函数:作用与示例

math.comb(n, k) 是Python标准库math模块里的函数,专门用来计算组合数——也就是从n个不同元素中选出k个元素、不考虑选取顺序的选法总数。

组合数的数学公式为:

C(n, k) = n! / (k! * (n - k)!)
其中n!表示n的阶乘(即n×(n-1)×…×1)

核心规则

  • n和k必须是非负整数,且k ≤ n,否则会抛出ValueError
  • 组合数不关注元素的选取顺序,这是它和排列数(math.perm())的核心区别

实用示例

1. 基础组合计算

比如从5个不同的文具里选2个,不考虑选的顺序,计算有多少种选法:

import math

# 计算C(5,2)
print(math.comb(5, 2))  # 输出: 10

计算过程:5!/(2!×3!) = (5×4)/(2×1) = 10,对应10种不同的文具组合。

2. 边界情况验证

当选取0个元素或者选取全部元素时,组合数固定为1:

# 从10个元素中选0个,只有1种选法(什么都不选)
print(math.comb(10, 0))  # 输出: 1

# 从7个元素中选全部7个,也只有1种选法
print(math.comb(7, 7))   # 输出: 1

3. 实际场景应用

假设你组织线下活动,20个参与者里抽5个获得免费周边,不区分周边等级(即中奖顺序无关),计算总共有多少种中奖组合:

participants = 20
free_gift_winners = 5
total_combinations = math.comb(participants, free_gift_winners)
print(f"总中奖组合数: {total_combinations}")  # 输出: 15504

错误情况提示

如果传入不符合规则的参数,函数会直接报错:

  • 当k > n时:math.comb(3, 5) → 抛出ValueError
  • 当参数为非整数时:math.comb(5.5, 2) → 抛出ValueError

内容的提问来源于stack exchange,提问作者iammydoom

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:40:43