zoukankan      html  css  js  c++  java
  • 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。想的不对的地方,望指正!

  • 相关阅读:
    CentOS新系统必做的几件事
    CentOS基础指令备忘
    有向图的强连通分量
    模仿c的字符转整数函数 atoi
    N个骰子的点数和的概率分布
    c语言算法题目求职用
    copy指定目录下包括子目录中所有的文件
    js的页面交互
    js的数据类型、函数、流程控制及变量的四种声明方式
    z-index
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982127.html
Copyright © 2011-2022 走看看