19本书,选5本,任两本不邻-粗解
来源:互联网 发布:什么是java技术 编辑:程序博客网 时间:2024/04/30 17:04
有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。想的不对的地方,望指正!
- 19本书,选5本,任两本不邻-粗解
- 两本书
- 推荐两本书
- 两本书
- 入手两本书~
- 两本书
- 记两本书
- 两本教子书
- 两本书
- 推荐两本书
- SPRING两本书
- 本
- 推荐两本iava书
- 买了两本书
- 推荐两本iava书
- 买了两本书
- 计划翻译两本书
- 推荐的两本书
- 注解(Annotation)源码解析--简单实现(Hibernate,EJB,JPA)
- 毕业设计--MySqL的初探
- Java中的反射学习及反射解耦应用
- .net 委托和事件
- wo
- 19本书,选5本,任两本不邻-粗解
- 猫捉老鼠
- 少林功夫
- 打印python的ctype定义的结构中的数据
- 部分shell命令详解
- MFC下多线程UpdateData的使用方法
- javascript函数arguments对象
- 学了8年JAVA为何还是个门外汉
- 各品牌数码相机的特点