## 关于500桶酒至少用多少只老鼠的题的思考##
题目描述:有500桶酒,其中一桶有毒,喝了毒酒后,毒性会在一周之后发作,问至少要多少只🐭,可以在一周之后找出毒酒(老鼠越少越好,时间为一个周)
我的思考:
这道题一开始没做出来,没有思路,不知道如何解决,看了解析后,写下一点自己的想法。
要用最少的老鼠,既要用老鼠表示出更多的 酒的毒性的情况;老鼠到后面就只会有两种情况:中毒,没中毒;(这里其实就可以联系二进的 0 1),而对酒,也只有两种情况:有毒或没有毒(这里也可以联系二进制,即用0 1表示两种状态)下面讲讲如何解题
将500桶酒编号,用二进制序列来进行编号,因为有500桶酒,而2^9=512;9位二进制的111111111表示511;所以9个二进制的1就够了。
将0——500的酒编号
1 。 0 0000 0001
2 。 0 0000 0010
~~~~~
499。 1 1111 0011
500。 1 1111 0100
而找到老鼠,分别对这里面的二进制位,如第一只老鼠对应第一个二进制位,以此类推,每只老鼠要喝掉自己所在二进制位二进制编号出现1的酒。所以只需9只老鼠。如果第二只 ,第四只老鼠死了,其它没死,则毒酒的二进制序列位 0 0000 1010,所以第10桶酒是毒酒。
Summary:
关于这类问题,将它转换成一类我们熟悉的问题很重要,这个问题转换成二进制来处理就很巧妙,反正我是没有想到。转换问题的能力还是很差。(第一次写博客,记录一下每日的学习,希望能有很多收获)