0

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

从相同的 n 和 r 计算 nPr(排列)和 nCr(组合),并在精确的 BigInt 算术中逐步显示真正的阶乘消除工作原理。

Buy Me a Coffee at ko-fi.com
处理中... 0%
读取 n 和 r
扩大保理链
完成

结果

当顺序很重要时,排列 (nPr) 计算排列从 n 组中选择的 r 项的方式数量;当顺序无关紧要时,组合 (nCr) 会计算相同的选择。该计算器使用 n 和 r 并在一次运行中计算两者,因此您可以直接看到排列一组的方法比简单地选择一组的方法多得多。

大多数计算器通过计算 n! 来评估 nPr。和(n-r)!分开和除法——这意味着计算巨大的阶乘只是为了再次抵消其中的大部分。该工具完全跳过了这种浪费:nPr = n × (n-1) × ... × (n-r+1) 直接构建为恰好 r 个降序项的链,这已经是取消的形式。对于 8P3,该链为 8 × 7 × 6 = 336,完全按照手写的方式显示。然后 nCr 将同一链除以 r! = r × (r-1) × ... × 1 — 对于 8C3,即 336 ÷ (3 × 2 × 1) = 336 ÷ 6 = 56 — 再次显示为显式除法,而不是隐藏的阶乘比率。

每一步都使用 BigInt(JavaScript 的任意精度整数类型),因此永远不会有任何浮点舍入:n 可以上升到数百,结果仍然是精确的整数,而不是像普通计算器阶乘一旦溢出双精度浮点数就会开始丢失数字的近似值。超过十几个项的链被截断(前几个项,省略号,然后最后几个)纯粹是为了可读性 - 底层算术总是使用每个项。

排列和组合不断出现在概率、统计、彩票和纸牌游戏赔率、日程安排和座位安排以及组合数学作业中。一切都在您的浏览器本地运行 - 无需注册,无需服务器往返 - 并且只需单击一下即可将完整的分步工作复制为纯文本以用于作业或文档。