小白鼠试毒 面试题

1. 1024 个瓶子,其中有一瓶是毒药其余为水,小白鼠饮用毒药后会在第二天死亡,最少需要多少只小白鼠才可以在第二天知道那瓶是毒药?

答案是10只。
已知任何一个数字都有一个唯一的二进制表示,1023的表示为11111 11111(先不考虑1024)。任何小于1023的正整数必定位数小于等于10。所以容易想到最小需要十个位,即十只小白鼠。
第1号小白鼠喝 xxxxx xxxx1的药,第2号小白鼠喝xxxxx xxx1x的药,第3号小白鼠喝 xxxxx xx1xx的药,… 第10号小白鼠喝 1xxxx xxxxx的药(x表示0/1)。
举个例子,如果最后的毒药的编号是10010 11001,则容易知道死的小白鼠是1号,4号,5号,7号,10号,其他小白鼠没死。(除了1024外的毒药编号同情况)
如果最后没有小白鼠死亡,则容易想到1024号是毒药。

2. 1023 个瓶子,其中有一瓶是毒药其余为水,小白鼠饮用毒药后会在第三天死, 最少需要多少只小白鼠才可以在第四天知道那瓶是毒药?

答案是9只。
理论上9只小白鼠可以测511只。考虑时间维度为511*2+1(如果所有小白鼠第七天都没死)=1023只。将前511在第一天给小白鼠喝下,后511在第二天给小白鼠喝下。如果毒药在前511只内,则说明小白鼠只会在第三天死,如果毒药在后511只内,则说明小白鼠只会在第四天死,所以9只就可以确定。

3. 1023 个瓶子,其中有一瓶是毒药其余为水,小白鼠饮用毒药后会在第二天死, 最少需要多少只小白鼠才可以在第三天知道那瓶是毒药?

答案是9只,同上。
此时小白鼠在第二天喝药前就可以观察到,但是不影响结果。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值