围棋吧 关注:339,173贴子:10,277,374
问题1:现有一千瓶药水,其中九百九十九瓶是无毒的,只有一瓶里面是毒药,但是外观上分辨不出来。毒药给小白鼠喝了后,一天内死亡这只小白鼠会突然死亡,但之前一点症状也没有,时间也不一定。现需要在1天后找出哪瓶是毒药,问至少需要几只小白鼠?
问题2:现有一千瓶药水,其中九百九十九瓶是无毒的,只有一瓶里面是毒药,但是外观上分辨不出来。毒药给小白鼠喝了后,一天内死亡这只小白鼠会突然死亡,但之前一点症状也没有,时间也不一定。现需要在2天后找出哪瓶是毒药,问至少需要几只小白鼠?
问题3:现有一千瓶药水,其中九百九十九瓶是无毒的,只有一瓶里面是毒药,但是外观上分辨不出来。毒药给小白鼠喝了后,一天内死亡这只小白鼠会突然死亡,但之前一点症状也没有,时间也不一定。现需要在4天后找出哪瓶是毒药,问至少需要几只小白鼠?


来自Android客户端1楼2020-08-19 22:52回复
    第一题难度还好,后面的很难。


    来自Android客户端2楼2020-08-19 22:52
    回复
      第一个感觉二叉树就能搞定


      IP属地:河北来自Android客户端3楼2020-08-19 23:01
      回复
        1000瓶药水扒两堆,一堆500,先逮俩小白耗子,500混合药喂一个,另外500混合药喂另外一个,这样那个死了毒药就在那堆,500再往下分堆,250一堆,再逮4个小白耗子……以此类推,二叉树,把节点数目数出来就ok了


        IP属地:河北来自Android客户端4楼2020-08-19 23:05
        收起回复
          这种问题当年深有研究。
          目前发现最便捷的方法,
          是利用2进制等的编码方法。
          一次性就能出来。不需要第二次灌药。


          IP属地:内蒙古7楼2020-08-19 23:22
          收起回复
            32只?7只?


            IP属地:美国来自Android客户端9楼2020-08-20 01:39
            回复
              999


              IP属地:浙江来自Android客户端10楼2020-08-20 08:37
              收起回复
                极端冒险的话,就是一只,赌运气。


                IP属地:河北11楼2020-08-20 08:41
                收起回复
                  2**10=1024
                  所以10只可一次搞定


                  IP属地:广东来自iPhone客户端14楼2020-08-20 11:39
                  回复
                    第一问是10,后边计算有些繁琐了


                    IP属地:广东15楼2020-08-20 11:45
                    收起回复
                      学过编程没?利用二进制编码来解决这个问题很简单的


                      来自Android客户端16楼2020-08-20 11:51
                      回复
                        3**6=729
                        3**7=2187
                        7只可以两次搞定


                        IP属地:广东来自iPhone客户端17楼2020-08-20 12:06
                        收起回复
                          4**5=1024
                          5只可以三次搞定


                          IP属地:广东来自iPhone客户端18楼2020-08-20 12:11
                          回复
                            5**4=625
                            所以四次(天)也需要5只老鼠


                            IP属地:广东来自iPhone客户端19楼2020-08-20 12:14
                            回复
                              10只,把所有瓶子用十进制编号,十只老鼠喝对应一至十位上数字为1的瓶子混合成的水,这样死老鼠为1,不死的老鼠为0,组成的编号就是那瓶有毒的水


                              IP属地:天津来自Android客户端21楼2020-08-20 12:50
                              回复