多重集合的排列与组合
来源:互联网 发布:手机网络捕鱼赌博害人 编辑:程序博客网 时间:2024/05/16 10:13
《Introductory Combinatorics Fifth Edition》学习笔记:
多重集合的排列:
设S是有k种不同类型对象的多重集合,每个元素都有无限的重复数。那么s的r排列数目是k^r.例子:最多有4位的3进制数(3元数)的个数是多少?
分析:3^4=81。
设s是多重集合,有k种类型的对象,且每种类型的有限重复数是n1,n2,……,nk。s的大小是n=n1+n2+n3+……+nk。那么s的排列数目等于:result=n!/(n1!*n2!*……*nk!)
例子:词MISSISSIPPI中字母的排列数是?
分析:词含有的字母总个数是11,M:1,I:4,S:4,P:2。所以result=11!/(1*4!*4!*2!).
设n是正整数,并设n1,n2,……,nk是正整数且n=n1+n2+……+nk。把所有的对象划分成k个标有不同标签的盒子,且盒子们分别对应n1,n2,……,nk。那么划分的总方案数是: n!/(n1!*n2!*……nk!)。假如这些标签都是相同的或者说没有标签,并且n1=n2=……=nk,那么总数是n!/[k!*n1*n2*……*nk!].
例子:3种类型9个对象的多重集合s={3*a,2*b,4*c}。求s中8排列的个数?
分析:要排列的数目和对象的总个数不相同。分成3种情况讨论,s1={2a,2b,4c},s1=8!/(2!*2!*4!)=420; s2={3a,b,4c},s2=8!/(3!*1*4!)=280; s3={3a,2b,3c},s3=8!/(3!*2!*3!)=560. result=s1+s2+s3.
多重集合的组合:
通过一个例子来初步认识:设s={2a,1b,3c},那么s的3组合是:{2a,b},{2a,c},{a,b,c},{b,2c},{a,2c},{3c}。设S是有k种类型对象的多重集合,每种元素均有无限的重复数。那么S的r组合的个数等于:C(r+k-1,r).
证明:S任何r组合一定呈现{x1*a1,x2*a2,……,xk*ak}的组合形式。x1+x2+……+xk=r.先将x系列数字分割成k部分,这样有了r+k-1个元素(要插入k-1个隔板,可以看做值为0的元素),用这些元素组成的一个r排列就是解。那么这样的排列个数是(r+k-1)!/(k-1)!/r!(除以同类型值的排列),即C(r+k-1,r)。
问题:一家面包店有8种炸面包圈。如果一盒内装有一打(12个)炸面包圈,那么能够装配多少类型的面包圈盒?
分析:和上面的知识点一样,12个x分成8份,然后选出12排列。result=C(12+8-1,12)。
问题:继续上面的问题,如果8种面包圈每一种都需要至少一个,那么结果的面包盒有多少个?
分析:变量代换x'=x-1,则8个x'的和是8x-8=12-8=4,result=C(4+8-1,4)。
组合问题中的每种类型的对象出现次数的下界可以通过变量代换来解决。
问题:x1+x2+x3+x4=20的整数解的个数是多少?其中x1>=3,x2>=1,x3>=0,x4>=5.
分析:y1=x1-3,y2=x2-1,y3=x3,y4=x4-5. y1+y2+y3+y4=20-9=11.result=C(11+4-1,11)=364.
0 0
- 多重集合的排列与组合
- 多重集合的排列和组合问题
- 多重集合的排列和组合问题
- 多重集合的排列和组合问题
- 集合的排列与组合
- 有关多重集合的排列和组合问题
- 组合数学读书笔记排列与组合(2)多重集的排列与组合
- 多重排列和多重组合
- 输出给定集合的所有排列与组合-python
- 求集合的组合和排列问题
- 集合元素的排列和组合
- 排列与组合的区别
- 字符串的排列与组合
- 排列与组合的算法
- 排列与组合的区别
- 排列与组合的实现
- 字符串的排列与组合
- 排列与组合的关系
- 第五次作业:开源项目“网页正文提取”的理解
- 引入dragonbonesCpp遇到的一些问题
- Linux的时间设置与同步(NTP)
- Handler使用总结
- 线程同步--生产者消费者
- 多重集合的排列与组合
- 东京中文离线地图App上线
- 对Linux中inode的理解
- C++:类内static成员
- C++虚函数
- gcc动态编译和静态编译方法
- 虚幻4引擎2d游戏基础
- 浅析Python虚拟机执行框架
- 我的IOS学习之路