8 瓶水 2 瓶有毒 6 个耗子 要求单次检验出结果

2021-04-20 18:58:15 +08:00
 eroko
这题应该怎么算?
11588 次点击
所在节点    问与答
146 条回复
noe132
2021-04-20 19:12:13 +08:00
将 2 瓶水两两组合混合一共 8x8=64 种状态,编码为 0-63,每种状态代表任意 2 瓶水的 combo,6 只耗子=6bit,每只耗子毒死 /存货代表 1bit,6bit 一共 2^6 = 64 种状态,将上面组合的 64 种状态再根据每一种状态对应二进制位混合出 6 瓶水,给 6 只耗子喝,根据最后结果就可以推算出来 8 瓶水哪 2 瓶有毒了。
Samuelcc
2021-04-20 19:13:23 +08:00
详细说下单次检验是什么意思?是不能看任何前置的检验结果吗?
感觉思路应该和混合水缩小范围相关
touchwithe
2021-04-20 19:16:05 +08:00
1. 拿出一瓶水,记为 A,向剩余 7 瓶中都倒入一点。
2. 7 中拿出 6 瓶,剩余一瓶记为 B 。
3. 6 瓶水分别喂 6 只耗子。
可能的结果:
死一只,对应喝的水有毒,B 有毒。
死两只,对应喝的水有毒。
全死了,A 有毒。
l00t
2021-04-20 19:18:17 +08:00
一次就检验出来,那就不能等待之前的喝药结果了。

没仔细验算过,你试试这个思路可行否:

将 8 按 2 进制拆出来,得到 8 个三位二进制数。看每个位上,是 0 的派一只老鼠,是 1 的派一只老鼠,这样三位三个 01,正好 6 只。喝完后看结果,根据死的老鼠找出毒药。
LZSZ
2021-04-20 19:22:10 +08:00
几瓶混在一起试错
touchwithe
2021-04-20 19:22:20 +08:00
@touchwithe #3 想错了,不对。还是一楼的方法好!
eroko
2021-04-20 19:22:24 +08:00
@Samuelcc 单次检验就是喂一次就能得到结果
zxCoder
2021-04-20 19:36:05 +08:00
@noe132 能再详细解释一下吗大佬

将上面组合的 64 种状态再根据每一种状态对应二进制位混合出 6 瓶水,给 6 只耗子喝,根据最后结果就可以推算出来 8 瓶水哪 2 瓶有毒了。

这段读得有点费劲。。。
xdeng
2021-04-20 19:36:09 +08:00
@eroko 单次检验就是喂一次就能得到结果 那不就是 6+2=8 吗。。。拿六瓶喂六只 都没死 那就是剩下的 2 瓶有毒吗?死了对应的那瓶就有毒?是我理解错了吗?
fisherman0459
2021-04-20 19:37:42 +08:00
@xdeng 如果六只里面只死了一只呢?
qsmd42
2021-04-20 19:38:34 +08:00
1 2 3 4 5 6 7 8
V V V V V V
A B C D E F

这样?
xinh
2021-04-20 19:42:32 +08:00
2 楼的那种二进制解法,在李永乐的视频里学的,有一期讲这个数学
xdeng
2021-04-20 19:53:29 +08:00
@fisherman0459 啊这。。。一楼字多一楼肯定对 哈哈哈
xdeng
2021-04-20 19:54:28 +08:00
@xinh +1 但好像说的不是耗子毒药
yigecaiji
2021-04-20 19:58:55 +08:00
@xinh 能给个视频名字或链接吗?有时间一定好好学一下
yxt
2021-04-20 20:15:46 +08:00
@noe132 混出 64 瓶水, 现在有 2*8=16 瓶水有毒了, 6 只耗子能找的是 64 瓶水里一瓶有毒吧?
AngryPanda
2021-04-20 20:22:07 +08:00
2 只耗子🐭就检验出来了
hm20062006ok
2021-04-20 20:24:02 +08:00
@noe132 "将 2 瓶水两两组合混合一共 8x8=64 种状态" 不是只有 28 瓶(两两混合后的)+ 8 瓶(原始的) = 36 种状态吗?
AndyVerne
2021-04-20 20:34:26 +08:00
8 瓶水,分四组(一组两瓶),一只老鼠喝一组如果
AndyVerne
2021-04-20 20:37:45 +08:00
@AndyVerne 8 瓶水,分四组(一组两瓶),一只老鼠喝一组,还有 2 只老鼠多出来,
如果 3 组没事,没事,那么有毒的一组就包括那两瓶有毒的水
如果 2 组出事,拿出两组的其中各一瓶,用多出的两只老鼠,根据情况对应排除,就能得到结果

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/771969

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX