问题一

有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有 1 瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?

解法

首先将这 1000 个瓶子进行编号:1 , 2 , 3 , 4 , 5 , 6 … 1000

然后将所有的小白鼠进行排列组合,组成一个 二进制 队列的形式:

  • 0 代表不喝

  • 1 代表喝

比如:

0000000001 代表第 1 瓶水被喝情况
0000000010 代表第 2 瓶水被喝情况
0000000011 代表第 3 瓶水被喝情况
0000000100 代表第 4 瓶水被喝情况

1111101000 代表第 1000 瓶水被喝情况

二进制小老鼠

全部 ©著作权归作者所有:来自51CTO博客作者mb5fe18fab305a5的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 我用python掐指一算,2020高考分数和录取情况可能是这样
  2. 怎么循环查看php-fpm的内存占用情况
  3. PHP获取不到SESSION信息之一般情况解决方案
  4. @Transactional 注解哪些情况下会失效?
  5. 别在不知道临时死区的情况下使用 JavaScript 变量[每日前端夜话0
  6. 在不触发hashchange事件的情况下更改哈希
  7. 在没有重新设置源选项的情况下,使用x-editable更改select2的数据
  8. jQuery Mobile,在不使用data-position =“fixed”的情况下将页脚
  9. Web App可以在不刷新页面的情况下最好地添加,删除和编辑行

随机推荐

  1. android:screenOrientation 强制屏幕方向
  2. Android EditText 代码实现键盘弹出打开
  3. android 整合 maven 环境
  4. 有关谷歌Android和Java历史的一课
  5. Android JUnit单元测试
  6. Android数据库操作的两种方式
  7. android 中限制EditText 最大输入字符数
  8. Google Maps API Key申请方法及地址
  9. Android解析自定义xml文件--Sax解析xml文
  10. Android中的存储路径之外部存储