阶乘 · 排列 · 组合计算器 (n! · nPr · nCr)
输入 n 和 k。返回 n!、P(n,k) (有序选择)、C(n,k) (无序选择)。对概率、统计、组合学作业有用。
工作原理
阶乘
n! (读「n 的阶乘」) 是从 1 到 n 所有正整数的乘积。所以 5! = 1×2×3×4×5 = 120。按惯例, 0! = 1 (空积)。
阶乘极快增长。10! = 360 万, 20! = 2.4×10¹⁸, 100! 有 158 位。浮点在 21! 崩溃 (双精度限制); 我们用 BigInt 准确支持到 n=5000。
排列 vs 组合
排列 P(n,k) = n! / (n−k)!: 从 n 中有序选 k 个的方法数。P(5,2) = 20: 第一名从 5 选, 第二名从剩 4 选 = 5×4 = 20。
组合 C(n,k) = n! / (k!(n−k)!): 无序选择数。C(5,2) = 10: 同样选择但 {第一, 第二} = {第二, 第一} 所以除以 2!。著名的「n 选 k」。
顺序重要时用排列 (赛跑领奖台、密码顺序)。仅选择集合重要时用组合 (彩票号码、委员会选举)。C(n,k) ≤ P(n,k) 总成立; k=1 时相等。
应用场合
概率: 骰子、卡牌、抛硬币。P(5 次中 3 次正面) = C(5,3) × (1/2)⁵ = 10/32。组合让你数有利结果。
统计: 二项分布用 C(n,k)。无放回抽样用组合。
计算机科学: 计数子集、复杂度分析 (如 k-团枚举是 C(n,k))、图算法。
现实世界: 彩票赔率 (美国 Powerball: C(69,5) × 26 ≈ 2.92 亿组合)。餐厅菜单组合: 「从 8 个配菜选 3 个」是 C(8,3) = 56 种。
常见问题
›为什么 0! = 1?
按惯例,「空积」是 1 (类似空和是 0)。它也让 C(n,0) = 1 (选无的方法是 1) 等公式一致工作。
›可以计算的最大阶乘?
n=5000 给 16,326 位数。我们限制 5000 以防巨大输入冻结浏览器。更大用 CAS。
›排列和组合的区别?
排列中顺序重要, 组合中不重要。{A,B} 与 {B,A} 是同组合但两个不同排列: AB 和 BA。
›负数的阶乘有定义?
在标准意义上没有。Gamma 函数 Γ(x) 把阶乘扩展到所有实数 (和复数), 但我们的计算器只处理非负整数。
›组合公式?
C(n,k) = n! / (k! × (n-k)!)。读「n choose k」。等价: P(n,k) / k! 因为顺序无关。
›本工具有多准?
范围内所有值都精确。我们用 BigInt 算术, 无浮点误差。
›为什么 70! 比 60! 大那么多?
每个阶乘乘下一个整数。70! 大致是 60! × 61 × 62 × … × 70 ≈ 60! × 1.4 × 10¹⁷。阶乘比指数增长更快 — 由 Stirling 近似大致是 n^n × e^-n × √(2πn)。
›数据会上传吗?
不会。计算在本地; 不向服务器发送。
相关工具
最后更新: