快速计算 排列数 P(n, k) 与 组合数 C(n, k) ,支持阶乘分解与即时结果
支持 n, k 为 0 ~ 999 整数,大数显示科学计数法。
P(n,k) = n! / (n−k)!
C(n,k) = n! / [k!(n−k)!]
排列(Permutation) 指从 n 个不同元素中取出 k 个元素,按照一定顺序排列的个数。记作 P(n, k) 或 A(n, k)。
组合(Combination) 指从 n 个不同元素中取出 k 个元素,不考虑顺序的个数。记作 C(n, k) 或 nCk。
应用场景:密码学、概率统计、生物信息、游戏数值设计、赛事分组等。
❓ 当 k > n 时怎么办?
排列与组合数均为 0,因为无法从较少的元素中选取更多。计算器会自动归零。
❓ 为什么阶乘结果显示科学计数法?
当数字超过 15 位时,JavaScript 自动使用指数形式,例如 21! ≈ 5.1e19,不影响排列组合值。
❓ 如何计算重复排列?
本工具为经典无重复排列/组合。重复排列可用 n^k 公式,后续版本或将支持。
📌 组合恒等式 C(n,k)=C(n,n−k)
例如 C(8,3)=C(8,5)=56,计算器可直接验证。
📌 大数溢出处理
当 n>170 时,阶乘超出 JS 最大安全整数,计算器返回科学计数法,组合数仍保持相对精度。
📌 排列与组合的关系
P(n,k) = C(n,k) × k! ,即排列是组合再乘以内部排列数。
📌 0! 为什么等于1?
数学约定,空集的排列方式为1,保证组合公式一致。