当前位置 : 主页 > 编程语言 > java >

多重集合的排列与组合

来源:互联网 收集:自由互联 发布时间:2022-08-10
《Introductory Combinatorics Fifth Edition》学习笔记: 多重集合的排列: 设S是有k种不同类型对象的多重集合,每个元素都有无限的重复数。那么s的r排列数目是k^r. 例子:最多有4位的3进制数


《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.




【文章原创作者:韩国服务器 https://www.68idc.cn 欢迎留下您的宝贵建议】
上一篇:& | 与&& ||
下一篇:没有了
网友评论