V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
woodensail
V2EX  ›  问与答

关于之前那个 6 只耗子找 8 瓶水中的 2 瓶毒药的问题的解法

  •  
  •   woodensail · 2021-04-21 12:44:37 +08:00 · 905 次点击
    这是一个创建于 1338 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先从信息熵上讲是可以解的,只是得设计出合适的解法。 然后这次的问题其实在于 2 瓶有两瓶毒药,没法用传统方式来解。所以问题的本质在于把 n 选 2 的问题转化为 n 选 1 。

    首先说一下错误思路,常见的思路是 8 选 2 一共有 28 种可能性。针对每一种可能性,我们调出一杯水,从而将问题转化为 28 选 1 。但是问题在于这不是 28 杯里面有一瓶毒药,而是 28 杯里面只有一瓶没有毒,很明显我们传统的解决模式解决不了这种场景。

    然后就是我的思路,分治。8 杯水和 6 只老鼠分两组,在每组内部,我们让 1 号鼠喝 1 、2 ; 2 号鼠喝 2 、3 ; 3 号鼠喝 3 、4 。 下面是分析时间,此时有两种可能,一种是两组各一瓶毒药,另一种是一组两瓶,另一组没有。 如果某组一只老鼠都没死,则该组无毒药,相对应的另一组一定有两瓶毒药。而有两瓶毒药的这组,如果 1 号活下来则 3 、4 是毒药,其他同理,如果 3 只都死了则 2 、3 是毒药。 如果两组都有老鼠死亡,则每组各有一瓶毒药,然后很明显,1 、2 死了则 2 是毒药,2 、3 死了则 3 是毒药,只有 1 死是 1 号,只有 3 死是 4 号。

    以上,其实这个问题的极限远不止于此,如果只考虑信息熵,理论上 6 只老鼠最极限的情况下能从 11 瓶水里面找出 2 瓶毒药。不过我是做不到了,方案太难以设计了。

    rationa1cuzz
        1
    rationa1cuzz  
       2021-04-21 13:28:00 +08:00
    老鼠( ABCDEF )药( 12345678 )
    两组:x[ABC 1234] y[DEF 5678]
    两种情况:
    1 、x 或 y 有两瓶 假设 x 组两瓶 12 13 14 23 24 34 六种情况分别对应死亡情况 AB ABC AC ABC ABC BC
    2 、x y 各有一瓶
    不知道我理解的对不对
    hm20062006ok
        2
    hm20062006ok  
       2021-04-21 13:43:06 +08:00
    如果其中一组有两瓶毒药。小鼠 A 喝毒药 1,2,小鼠 B 喝毒药 2,3,小鼠 C 喝毒药 3,4. 如果三只都死了,可能的组合有:1,3 有毒( 1 被 A 喝,3 被 B,C 喝)。2,4 有毒( 2 被 A,B 喝,4 被 C 喝)
    还是找不出来呀?
    hm20062006ok
        3
    hm20062006ok  
       2021-04-21 13:47:06 +08:00
    如果其中一组有两瓶毒药。小鼠 A 喝毒药 1,2,小鼠 B 喝毒药 2,3,小鼠 C 喝毒药 3,4 。
    如果三只都死了,可能的组合有:
    1,3 有毒( 1 被 A 喝,3 被 B,C 喝)。2,4 有毒( 2 被 A,B 喝,4 被 C 喝)

    还是找不出来呀?
    xmh51
        4
    xmh51  
       2021-04-21 13:51:23 +08:00
    @hm20062006ok 老鼠能重复利用啊。。 不死的还能用啊
    woodensail
        5
    woodensail  
    OP
       2021-04-21 13:51:49 +08:00
    @hm20062006ok 嗯,说的有道理,组内得重新设计一下。那么现在问题就转化为 3 只老鼠从 2 瓶毒药里面找到 2 瓶毒药,同时要保证 4 瓶药水都被喝到。
    我来想想啊
    xmh51
        6
    xmh51  
       2021-04-21 13:53:26 +08:00
    @hm20062006ok 哦哦 看到了 只能一次
    AndyVerne
        7
    AndyVerne  
       2021-04-21 13:53:57 +08:00
    @xmh51 如果考虑到老鼠能重复利用的话,2 只老鼠就完事了┑( ̄Д  ̄)┍
    woodensail
        8
    woodensail  
    OP
       2021-04-21 13:54:24 +08:00
    @woodensail 额,应该是,4 瓶水里面找到 2 瓶毒药。感觉好难啊,似乎搞不出来了。
    woodensail
        9
    woodensail  
    OP
       2021-04-21 14:04:37 +08:00
    @hm20062006ok 嗯,我宣布我做不到,就算优化方案,最后还是会出现二选一的情况。草率了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1052 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 20:24 · PVG 04:24 · LAX 12:24 · JFK 15:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.