排列组合计算器
输入 n(项目总数)和 r(选取的项目数),即可并排计算 nPr 和 nCr,并用您的数字完整展示阶乘公式的计算过程——还有通俗易懂的“何时顺序重要”说明。
nPr 与 nCr
排列——顺序重要(10P3)
720
10P3 = 10! ÷ (10 − 3)! = 10! ÷ 7!
10! ÷ 7! 可化简为最前面 3 个因子的乘积:
10 × 9 × 8 = 720
组合——顺序不重要(10C3)
120
10C3 = 10! ÷ (3! × (10 − 3)!) = 10! ÷ (3! × 7!)
10C3 = 10P3 ÷ 3! ——除去每种选择的 6 种排列方式:
720 ÷ 6 = 120
什么时候顺序重要?
顺序重要 → 排列(nPr)。 密码锁是最经典的例子:在一个使用数字 1、2、3 的三位密码锁上,密码 1-2-3 和 3-2-1 是不同的——相同的三个数字以不同的顺序排列将无法打开锁。领奖台名次(第一、第二、第三名)、密码,以及座位安排都是同样的道理。
顺序不重要 → 组合(nCr)。 披萨配料是最经典的例子:一份有蘑菇、橄榄和青椒的披萨,和一份有青椒、橄榄和蘑菇的披萨完全是同一份披萨。委员会成员、彩票号码选择,以及扑克牌组合也是同样的道理。
这就是为什么 nCr 永远不会大于 nPr:每一种从 r 个项目中做出的无序选择,都对应着 r! 种不同的有序排列方式,因此 nCr = nPr ÷ r!。
常见问题
- 排列和组合有什么区别?
- 排列计算的是有序排列——选出第一名、第二名和第三名就是一种排列。组合计算的是无序选择——从中选出 3 人组成委员会就是一种组合。对于相同的 n 和 r,nPr 总是大于或等于 nCr。
- nPr 的公式是什么?
- nPr = n! ÷ (n − r)!。在实际计算中,这等于乘积 n × (n − 1) × … × (n − r + 1),这正是本计算器的计算方式——无需计算完整的阶乘。
- nCr 的公式是什么?
- nCr = n! ÷ (r! × (n − r)!)。它等于 nPr 除以 r!,因为从 r 个项目的每一种无序选择,都可以排列出 r! 种不同的顺序。
- 为什么输入限制为 n ≤ 170?
- 170! 是能在 JavaScript 浮点数中容纳的最大阶乘;171! 会溢出为无穷大。在该限制范围内,非常大的结果会以科学计数法显示。
- 锁的“密码组合”真的是组合吗?
- 不是——从数学上讲,它其实是一种排列,因为 1-2-3 和 3-2-1 打开的是不同的锁。顺序是重要的,所以“排列锁”才是准确的名称。