1: 折半查找的方式
容易理解 500瓶每瓶1滴放在一起看老鼠喝了死不死
依次类推 250->125->63->32->16->8->4->2->1
2: 转换为二进制形式
2的10次方 = 1024 > 1000 即1000 都可以表示成10位二进制的形式
则取10个碗,对应10位
1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 0 0 0 0 0
对应第一瓶酒,则在第10个碗中加一滴(因为1的二进制为0000000001)
对应第1000瓶, 则在1,2,3,4,5,7碗中加一滴(1111101000)
然后让老鼠喝酒,取死老鼠的二进制(死为1)
若第一瓶有毒 其它无毒,则只有第10个老鼠死
若第15瓶有毒 78910碗对应的老鼠都死
依次类推
本文介绍了一种利用二进制转换和折半查找原理来高效定位含有毒物的瓶子的方法。通过将1024瓶酒编号为10位二进制数,并在对应的碗中加入一滴酒,只需通过让一只老鼠品尝不同碗中的混合酒即可找出含有毒物的瓶子。
1739

被折叠的 条评论
为什么被折叠?



