Login
首页 > 图文教程 > C++教程

【编程数论】排列与组合

燃冰世纪教育 2025-07-04 09:26:30 人看过

1.组合数的定义与背景

组合数是组合数学里的概念,用于计算 “从  个元素中选  个元素,有多少种不考虑顺序的选法”。比如从  个不同的小球里选  个,不管先选哪个后选哪个,只要最终选出的是这  个小球,就算同一种选法,这时候就用  计算选法总数 ,通用写法就是:Cnk,也可以用(kn), (规范写法是  在上、 在下 )就是组合数

2. 计算公式

组合数有专门的计算公式:
对于  ,把  代入公式:


计算时, 可以约掉,简化后得到结果是  ,意思就是从  个元素里选  个元素,不考虑顺序的话,一共有  种不同的选法 。


3. 对比排列数

和组合数容易混淆的是排列数(比如  ),排列数计算的是 “从  个元素中选  个元素并考虑顺序的排列方式总数” 。排列数公式是  ,对比组合数,会发现组合数因为不考虑顺序,要把排列数里重复计算的顺序 “除掉”(除以  ),所以组合数结果一般比对应排列数小 。


比如  ,明显比  大,就是因为排列数考虑了选出  个元素内部不同的排列顺序,而组合数不考虑 。


简单说, 就是算从  个里选  个 “不排顺序” 的选法总数,结果是  ,常用来解决组合数学里的计数、概率等问题,像计算抽奖中奖概率、选代表的方案数等场景都会用到它 。


版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章