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

2021-04-20 18:58:15 +08:00
 eroko
这题应该怎么算?
11671 次点击
所在节点    问与答
146 条回复
hahaayaoyaoyao
2021-04-21 21:01:41 +08:00
hahaayaoyaoyao
2021-04-21 21:03:46 +08:00
@hahaayaoyaoyao 两两组合, 组成 6 瓶水
evilStart
2021-04-21 21:16:19 +08:00
一楼就解答完了为什么能够这么多层楼?
Godykc
2021-04-21 21:23:14 +08:00
谁能解释下题干强调的单次是啥意思?

按照一楼思路,总共 64 种水的组合,6 只鼠怎么实现“单次”喝完?
looooooong
2021-04-21 21:29:10 +08:00
@Godykc 可以理解为 1 小时毒发死亡,你也只有 1 小时时间
tianxia
2021-04-21 21:34:50 +08:00
@err1y 单次出结果
snw
2021-04-21 21:53:01 +08:00
@NEVERCODE
你这种方法区分不出(1,2)有毒和(1,3)有毒这两种情况,因为都是 AB 鼠死。
snw
2021-04-21 22:16:38 +08:00
@liprais
@evilStart
因为一楼的答案是错的啊。

@lafree317
要求单次出结果。

@hahaayaoyaoyao
喝 AB 的老鼠和喝 CD 的老鼠死了,请问哪两瓶是毒药?
snw
2021-04-21 22:31:02 +08:00
@Jealee
看起来没问题,而且是这楼目前最优美的解答(和 85 楼是等价的)。
GTim
2021-04-21 22:36:40 +08:00
@touchwithe lihai
Xs0ul
2021-04-21 22:41:40 +08:00
@snw #129 这个 24 和 34 的结果一样的。建议大家代码验证,自己想很容易漏


@shyrock #104 我是单纯随机然后验证的,其他人可能有更好的办法
snw
2021-04-21 22:44:33 +08:00
@Jealee
不对,这种排列方法无法区分(1,3)和(2,3)两种情况。
GTim
2021-04-21 22:48:04 +08:00
@touchwithe 你的答案挺好的呀 ,在于启发

1. 8 瓶中先拿三两瓶 比如 A,B, C
2. 将 C 往剩余的 5 瓶中都倒入,拿给老鼠喝
3. 如果全死,那么说明 C 有毒,A,B 中有一瓶有毒,剩下一只老鼠,嘿嘿,随便喂一瓶就知道结果了
4. 如果死一只,那么,C 没毒,哪瓶对应的老鼠死了就是哪瓶,A,B 中有一瓶有毒,剩下一只老鼠,嘿嘿,随便喂一瓶就知道结果了
5. 死两只,那么就是哪瓶死了是哪瓶
6. 什么,一只都没死,不可能的事。
GTim
2021-04-21 22:49:25 +08:00
@GTim 的确错了,我的逻辑也错了
Xs0ul
2021-04-22 00:26:07 +08:00
@idyu #114 你这组解好像有点问题,比如区分不了 23 和 38 的情况,都是只有第 5 只老鼠不会死
dangyuluo
2021-04-22 01:28:43 +08:00
没说多少个杯子
NEVERCODE
2021-04-22 10:20:18 +08:00
@snw 确实,当时没想到。那就组成 12,13,34,35,四杯水,然后 6 7 各一杯,正好六只老鼠,然后根据死亡情况再去排除 8 的水
JustLookBy
2021-04-22 14:54:57 +08:00
1 楼就是说了个理论,结果是行不通的。

@lff0305 #116
@Xs0ul #85
俩楼给出了正确解,至于怎么有逻辑的推出这个解 感觉还没答案。。
我写了个在线验证答案的简单页面,同学们有需要可以来验证下自己答案先。。。一堆给了错误答案的

https://abiudoit.github.io/algorithmTest/checkPoison.html
lff0305
2021-04-22 21:46:33 +08:00
@JustLookBy
没那么复杂,穷举+验证就行了

本来最开始用的是 6 个循环每个循环 1~255 发现时间不可接受( 255^6)
后来看 85 楼的结果行 1 的个数是相同的(也就是老鼠喝相同数目的瓶子)

所以就做了个假设:老鼠喝的瓶子的数目是相同的
这样循环的次数就少多了

每个老鼠喝一瓶 无解
每个老鼠喝两瓶 无解
每个老鼠喝三瓶 很多解

至于每个老鼠喝不同的数目的瓶子,没实验,也无法证明一定不存在解
Xs0ul
2021-04-23 00:24:18 +08:00
@lff0305 #139 有一点,很多解实际是等价的,交换行列实际上相当于交换瓶子或者老鼠的顺序,本质上没有差别。所以我比较好奇除了全是 3 瓶以外的解

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

https://tanronggui.xyz/t/771969

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

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

© 2021 V2EX