组合与排列计算器(nCr nPr)

计算概率与组合数学问题中的组合数(nCr)和排列数(nPr)

输入项目总数(n)和要选择的项目数(r),即可计算组合数和排列数。此工具可帮助解决概率问题和组合数学问题。

组合与排列计算器(nCr nPr)
计算概率与组合数学问题中的组合数(nCr)和排列数(nPr)

关于组合与排列计算器

组合和排列是组合数学中最基础的两个概念。组合数学关注计数、排列和选择。理解二者的区别,对于解决概率论、统计学、计算机科学以及日常决策中的各种问题都很重要。 组合(记作 C(n, r) 或 nCr)用于计算从 n 个不同项目中选择 r 个项目的方式数,且选择顺序不重要。公式为 C(n, r) = n! / (r! × (n − r)!),其中 n!(n 的阶乘)表示从 1 到 n 的所有正整数的乘积。例如,从 10 人中选 3 人组成委员会,有 C(10, 3) = 120 种可能的委员会,因为成员被选出的顺序并不影响结果。 排列(记作 P(n, r) 或 nPr)用于计算从 n 个不同项目中选出 r 个项目并进行排序的方式数,此时顺序很重要。公式为 P(n, r) = n! / (n − r)!。仍以 10 人为例,如果要任命主席、副主席和财务主管,职位顺序至关重要,因此有 P(10, 3) = 720 种安排。 关键区别在于顺序。可以问自己:交换两个已选项目的位置,是否会产生有意义的不同结果?如果会,就需要排列;如果不会,则适用组合。牌局中的手牌是组合(无论抽牌顺序如何,A-K-Q 都是同一手牌),而 PIN 码是排列(1-2-3-4 不同于 4-3-2-1)。 组合和排列广泛出现在现实场景中。在概率中,它们定义样本空间大小,用于计算特定结果发生的可能性——例如,从 49 个号码中选 6 个赢得彩票的概率是 C(49, 6) = 13,983,816 分之一。在计算机科学中,它们用于分析算法复杂度、生成测试用例和设计哈希函数。在遗传学中,它们用于模拟等位基因的组合方式。在商业中,投资组合经理会用它们枚举可能的资产配置。 此计算器支持三种模式:仅组合、仅排列,或同时计算两者。只需输入 n(总集合大小)和 r(选择数量),选择模式,然后点击“计算结果”。工具会即时处理所有阶乘运算,即使 n 较大、手动计算不现实,也能快速给出结果。

示例

下表展示了典型的组合与排列问题及其答案。

输入 (n, r)结果场景
n=52, r=5(组合)C(52,5) = 2,598,960从标准牌组中组成 5 张扑克牌手牌
n=10, r=3(排列)P(10,3) = 72010 名跑者分配第 1、2、3 名的方式
n=49, r=6(组合)C(49,6) = 13,983,816彩票:从 49 个号码中选 6 个
n=8, r=3(两者)C(8,3)=56, P(8,3)=3368 名候选人中选委员会与排名职位

如何使用组合与排列计算器

  1. 在“项目总数 (n)”字段中输入可用项目的总数。n 必须是非负整数。
  2. 在“已选项目数 (r)”字段中输入要选择的项目数量。r 必须满足 0 ≤ r ≤ n。
  3. 选择计算类型:如果顺序不重要,选择“仅组合”;如果顺序重要,选择“仅排列”;如果想同时查看两种结果,选择“组合与排列”。
  4. 点击“计算结果”,使用公式 C(n,r) = n!/(r!(n−r)!) 和 P(n,r) = n!/(n−r)! 即时计算答案。
  5. 使用表格下方的快速载入示例按钮,预填现实场景并交互式探索结果。

常见问题

组合和排列有什么区别?
组合计算的是顺序不重要的选择方式,而排列计算的是顺序重要的安排方式。例如,为披萨选择 3 种配料是组合(意大利辣香肠-蘑菇-橄榄与橄榄-蘑菇-意大利辣香肠相同),但给 3 名运动员分配金、银、铜牌是排列(每一种不同顺序都代表不同结果)。
为什么 C(n, 0) = 1 且 P(n, 0) = 1?
按照数学约定,从一个集合中什么都不选只有一种方式——空选择;排列零个项目也只有一种方式——空排列。这与阶乘定义 0! = 1 一致,并确保公式在 r = 0 时也能正确工作。
r 可以大于 n 吗?
不可以。你不能选择或排列超过集合中可用数量的项目。如果 r > n,结果在数学上未定义(会涉及负数阶乘的除法),因此计算器会显示错误。点击计算前请确保 r ≤ n。
C(n, r) 和 C(n, n−r) 有什么关系?
C(n, r) = C(n, n−r),因为选择 r 个项目加入,等价于选择 n−r 个项目排除。例如,C(10, 3) = C(10, 7) = 120。这种对称性称为二项式系数的互补性质,当 r 接近 n 时可简化计算。
此计算器如何处理大阶乘?
JavaScript 浮点数最多可精确表示约 2^53 以内的整数,而阶乘增长极快(20! ≈ 2.4 × 10^18,21! 会超过 64 位整数范围)。计算器对组合采用迭代乘法方式以尽量减少溢出,但对于非常大的 n(约 170 以上),结果可能以科学记数法表示。若需要密码学级别的精确大整数,请使用专门的大整数库。
组合和排列在现实生活中用在哪里?
它们用于彩票概率计算、纸牌游戏赔率、体育赛程分组分析、DNA 序列分析、密码安全性(计算可能组合数)、排程与路径优化,以及统计实验设计。只要需要计算选择或排列项目的方式数,而不想逐一列出所有可能性,组合或排列就能给出答案。