智力题:用32只白鼠找出1000瓶药里的一瓶假药
来源:百度知道 编辑:UC知道 时间:2024/05/22 03:18:30
现在有32只小白鼠,假药的致死时间至少3天(可以理解为每只鼠可以喝很多管)
问如何辨别出哪管药水是假的? 喂药时间限制不能超过3天。
10只老鼠就够了。
把1000瓶药按顺序排列,并把他们的10进制编号换算成二进制编号
然后,根据10只耗子在2进制中的位数,让他们同时喝他们对应编号的药
10进制 2进制 哪只耗子喝
1 : 1 ---- 1号耗子喝
2 : 10 ---- 2号耗子喝
3 : 11 ---- 1和2号耗子同时喝
4 : 100 ---- 3号耗子喝
。。。。。
512 :1000000000 ---- 编号10的耗子喝
1000:1111101000 ---- 编号6-编号10还有编号4的耗子都喝
3天以后可以看出哪些耗子死亡(二进制代码的唯一性),根据他们对应的2进制编号就可以找到哪一管有毒了。
这类题已经有固定的解法,参加过数学竞赛的应该都比较熟悉了。
把药分成32组 每组最多32瓶 给每组编号
32只白鼠分别喝掉32个组的所有瓶药
3天后有一只白鼠死了 则有毒的就在这个白鼠喝的那个组瓶中
再让剩余的31只白鼠喝分别喝这组中的1瓶药
这样就可以找到了
呵呵,不错,就是这,电脑知识了
把1000瓶药按顺序排列,并把他们的10进制编号换算成二进制编号
然后,根据10只耗子在2进制中的位数,让他们同时喝他们对应编号的药
10进制 2进制 哪只耗子喝
1 : 1 ---- 1号耗子喝
2 : 10 ---- 2号耗子喝
3 : 11 ---- 1和2号耗子同时喝
4 : 100 ---- 3号耗子喝
。。。。。
512 :1000000000 ---- 编号10的耗子喝
1000:1111101000 ---- 编号6-编号10还有编号4的耗子都喝
3天以后可以看出哪些耗子死亡(二进制代码的唯一性),根据他们对应的2进制编号就可以找到哪一管有毒了。
10只老鼠就够了。