磊博士吧 关注:32贴子:1,095
  • 1回复贴,共1

编程思想:老鼠喝毒药问题的算法设计

只看楼主收藏回复

一楼空白


IP属地:陕西来自Android客户端1楼2014-09-30 17:59回复
    二进制的 11111111111(11个1) 是2047
    将每个瓶子编号1,2,3...2012.
    编号转为二进制00000000001,00000000010,00000000011,。。。。。
    将所有倒数一位为1的瓶子的液体取一点混合放在一个瓶子里。
    将所有倒数第二位为1的瓶子的液体取一点混合放在第二个瓶子里。
    2012转换为二进制只有11位。所以只要11个瓶子。
    将倒数第11位为1的瓶子的液体取一点混合放在第11个瓶子里。
    11只老鼠一次性分别喝下11个瓶子的混合液体。
    假设喝了第一个瓶子的老鼠死掉了,说明有毒液体瓶子的编号的倒数第一位为1.
    第二个没死掉,那么有毒瓶子倒数第二位为0.
    以此类推。
    11只老鼠是死是活的状态组成了有毒瓶子的编号。
    转载自c++吧


    IP属地:陕西来自Android客户端2楼2014-09-30 17:59
    回复