19本书,选5本,任两本不邻-粗解

 

有19本书,分别编号为1--19,从中选出5本,要求任意两本编号不相邻,问一共有多少中选法?

A. 2002 B. 3003 C. 11628 D. 360360

任选5本,组合C19(5)=19*18*17*16*15/5!=11628。又有条件规定任意两本编号不相邻,那一定选A或者B,由于是个选择题不必细究,那就可以选中间值B-3003。这是考场上的解决办法,要想一探究竟参考如下。

19本书就是有19个位置,我们可以写个19位的二进制数,1表示该位置的书选择了,0表示该位置的书没有选择。那么,任意两本不相邻,那我们可以写出5个1,相邻两个1之间放0,即101010101。如下图:

我们可以看出有6个等效位置,即10个0可以放在这六个位置,来产生不同的二进制数,使1出现的位置发生变化,对应选择不同位置的书本。

设每个位置分别放x1,x2,x3,x4,x5,x6个0,不同的组合(x1,x2,x3,x4,x5,x6)对应不同的选择。

x1+x2+x3+x4+x5+x6=10,化为线性规划了,你呢可以逐一演算来推出有多少解。我没有做演算,就写了个程序来验证了下答案。程序如下:

 

最后的count应为解个数,即选择的个数。运行程序结构为3003。想的不对的地方,望指正!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值