输入元素总数 n 与选取个数 r。结果用大整数精确计算——组合数 33 选 6 是 1107568,不会出现 1107567.9999 这类浮点误差。位数很多的数字会折叠显示,但复制出来是完整值。
工具说明
排列与组合的区别只有一个字:顺序。排列看顺序,组合不看顺序。同一个 r 个元素的集合,如果调换顺序算作不同结果就是排列,算作同一个结果就是组合。因此排列数总是组合数的 r! 倍。
本工具计算什么
- 排列数 P(n,r):从 n 个不同元素中取 r 个排成一列,有序。公式 n × (n−1) × … × (n−r+1)。
- 组合数 C(n,r):从 n 个不同元素中取 r 个成一组,无序。公式 P(n,r) ÷ r!。
- 阶乘 n!:n 个元素全排列的数量。
- 可重复排列 n^r:每次取完放回,取 r 次的有序结果数。例如 4 位数字密码是 10^4。
- 圆排列 (n−1)!:n 个元素围成一圈,旋转视为同一种排法。
为什么必须用大整数
阶乘增长极快。20! 已经是 2.43 × 10¹⁸,超出 64 位整数范围;而 JavaScript 的普通数字只能精确表示到 2⁵³ 约 9 × 10¹⁵。用普通数字计算 33 选 6 之类的结果会丢失精度,末尾几位变成 0 或随机数。本工具用大整数逐位运算,结果每一位都准确。
结果怎么读
组合数在杨辉三角里就是第 n 行第 r 个数,本工具直接列出该行便于对照。当组合数不太大时(不超过 300 组)还会把每一组的具体组合列出来,方便核对抽奖、选号这类实际场景。
你可能还想问
排列和组合到底怎么选?
看顺序是否影响结果。排队、密码、名次、赛程安排用排列;选人组队、抽奖号码、选菜、握手次数用组合。一个快速判断法:如果你把结果里任意两个元素互换位置,结果算不算变?算变就是排列,不算变就是组合。
双色球中一等奖的概率是多少?
红球从 33 个里选 6 个(组合,1107568 种),蓝球从 16 个里选 1 个,总组合数是 1107568 × 16 = 17721088 种。中一等奖要求全部匹配,概率是 1 ÷ 17721088,约等于 0.0000056%,也就是约 1772 万分之一。
为什么 33 选 6 的结果这么大?
因为组合数随 n 增长极快。n 从 10 增到 33,组合数从 210 涨到 1107568,放大了五千多倍。用阶乘公式代入即可:33! ÷ (6! × 27!),其中 33! 是一个 37 位的大数,所以必须用大整数运算才能算准。
计算结果是精确值吗?
是精确值。所有结果都用大整数逐位相乘相除得到,不存在浮点舍入。位数很多的数字在页面上会折叠显示(保留首尾部分),但点复制按钮拿到的是完整数字,可以直接粘到文档或代码里使用。
速查在线工具箱