排列的问题

来源:互联网 发布:python 真假 编辑:程序博客网 时间:2024/06/06 03:39

今天上离散数学,几道有意思的题整理了下。

1.  5个0 ,6个1,排列有多少种

     思路:不用去考虑1怎么排,想象现在有11个位置,在这11个位置里面选出5个填0就可以了,剩下的位置填1即可。所以答案就是11选5的排列,也可想到成

     在     0 0 0 0 0 中插入6个1进行划分。 

 

2.那现在有1元,2元,5元,10元,20元,50元,100元,每种钱币无限张,从中任意取5张,就总的取法

   思路:可以把这道题进行转化,比如 11111100000 ,第一个1左边有没有0,代表1元的0张,第二个1和第一个1之间也没有0代表2元的0张,以此类推,第六个0与第五个0之间也没有0代表50元的0张,最右边还有5个0代表100元的有5张,假如现在是10100110110 ,第一个1左边没有0,代表1元的0张,第二个1与第一个1之间有1个0代表2元的1张,第三个1和第二个1之间有2个0代表5元的两张,第四个1和第三个1之间没有0代表10元的0张,第五个1和第四个1之间有1个0代表50元的1张,以此类推,这样有多少种选法又转化成了问题1 ,6个1和5个0的全排列。

 

那现在总结下吧,有n种物品,每种无限个,现在要选r个,总共的选法有 n+r-1选5 ,比如第二道题里面,有7种物品,每种无限个,选5个,答案是11选5,接下来再来做几个有意思的吧。

 

3. x+y+z=21 ,其中x,y,z为非负整数,求有多少种

   思路:现在就是可以想象成有21个0,   0 0 0 0 0 0.....0 0 0 0 ,用两个1去划分 ,比如 0 1 0 0 .... 0  0 1 0 ,第一个1左边0的个数代表x,第一个1和第二个1之间0的个数代表y,第二个1右边0的个数代表z,那现在就变成2个1和21个0的排列 , 从23个位置中选出2个放1,剩余的地方放0,总共的放法有23选2种。

 

4.那如果加上要求呢,x+y+z=21,其中x,y,z为非负整数,且x>=11

  思路:可以令x-11 = p ,问题就转化为 p+y+z=11  , p,y,z为非负整数,有多少种放法,就可以用问题3的思路去解决

 

0 0