程序员的数学 - 排列组合 - 解决计数问题的方法 - 阅读小结
2018-02-04 11:21
731 查看
加法法则
当要数出两个集合的事物时,需要使用加法法则。乘法法则
当遇到“分别有”的情况时,需要使用乘法法则。置换
将n个事物按顺序进行排列,称为置换。n个事物按顺序进行排列的排列方法的总数,称为置换的总数。
n个事物所有的排法(讲究事物的顺序),称为置换的总数。
n张排置换的总数一般用n!n!阶乘来表示。
n!=n∗(n−1)∗(n−2)...∗2∗1n!=n∗(n−1)∗(n−2)...∗2∗1
排列
将从n个事物中取出k个事物按一定顺序排列的方法称为排列,记做:PknPnk,P是permutation的缩写。Pkn=(n−0)∗(n−1)∗(n−2)∗....∗(n−(k−1)) Pkn=n!(n−k)!Pnk=(n−0)∗(n−1)∗(n−2)∗....∗(n−(k−1)) Pnk=n!(n−k)!
组合
置换和排列都需要考虑顺序,而不需要考虑排列顺序的方法称为组合。想要得到组合,可以这么考虑:
和排列或置换一样,考虑顺序进行计数
除以重复计数的总数(重复度)
C35=5张排中取3张的排列总数−−考虑重复的排列的数3张排的排列总数−−−重复度C53=5张排中取3张的排列总数−−考虑重复的排列的数3张排的排列总数−−−重复度
Ckn=从n张中取出k张的排列总数k张的排列总数=PKnPkk=n!(n−k)!k!Cnk=从n张中取出k张的排列总数k张的排列总数=PnKPkk=n!(n−k)!k!
先考虑顺序进行计数,再除以重复度的方法,是计算组合时常用的计算方法。
例如:ABC、ACB、BAC、BCA、CAB、CBA这6中ABC的拍法,但是在组合中,这6种是被看做一种的,也就是重复计算了6次,即若像排列那样考虑顺序会产生6倍的重复计数,(6就是重复度),这个数字6则是3张牌置换的总数。
相关文章推荐
- 组合数学+错排问题【p4071】[SDOI2016]排列计数
- C语言实现的排列组合问题的通用算法、解决方法
- AC解 - 用动态规划解决一道排列组合计数问题(序关系计算)
- 小数学解决大问题 - 分类器组合方法(由民主投票想到)
- css常见问题解决方法小结
- JSP中文乱码问题解决方法小结
- 物理方法解决数学问题(一):从一个简单的平面几何题谈起
- css常见问题解决方法小结
- asp UTF-8 乱码问题的解决方法小结
- JSP中文乱码问题解决方法小结
- JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
- [转]ASP UTF-8 乱码问题的解决方法小结
- JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
- 安装sqlserver2008碰上的问题以及解决方法-----前人经验小结以及
- 黑莓:简单方法解决两个以上 Field 左右排列的问题
- 程序员编程问题与解决方法
- 物理方法解决数学问题(四):Fermat-Torricelli问题
- 重装SQL Server 2005遇到问题“性能监视器计数要求(错误)”的解决方法
- JSP中文乱码问题解决方法小结
- JSP中文乱码问题解决方法小结(转)