安卓基础

巧妙利用二进制思想

2022-04-16  本文已影响0人  在岁月中远行

对计算机bit的强大的理解力,用10只小白鼠查找出1000瓶药中有毒的那瓶。

题目:500瓶无色无味的药水,其中有一瓶毒药,9只小白鼠拿来实验,喝了无毒的药水第二天没事儿,喝了有毒的药水后第二天死亡。如何在一天找出这瓶有毒的药水。备注:500<2的9次方

思路:9只小白鼠,喝了药第二天只有两种情况活着或者死亡,我们可以用二进制里面的0和1表示。0代表活着,1代表死亡。

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000000001 对应十进制编号第1瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000000010 对应十进制编号第2瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000000011 对应十进制编号第3瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000000100 对应十进制编号第4瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000000101 对应十进制编号第5瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000000110 对应十进制编号第6瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000000111 对应十进制编号第7瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000001000 对应十进制编号第8瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000001001 对应十进制编号第9瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000001010 对应十进制编号第10瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000001011 对应十进制编号第11瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000001100 对应十进制编号第12瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000001101 对应十进制编号第13瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000001110 对应十进制编号第14瓶药水

2022-04-16 19:18:55.816 17472-17472/com.example.aaaa D/tanlin: 二进制数:0000001111 对应十进制编号第15瓶药水

..........................................

2022-04-16 19:18:55.822 17472-17472/com.example.aaaa D/tanlin: 二进制数:111101110 对应十进制编号第494瓶药水

2022-04-16 19:18:55.822 17472-17472/com.example.aaaa D/tanlin: 二进制数:111101111 对应十进制编号第495瓶药水

2022-04-16 19:18:55.822 17472-17472/com.example.aaaa D/tanlin: 二进制数:111110000 对应十进制编号第496瓶药水

2022-04-16 19:18:55.822 17472-17472/com.example.aaaa D/tanlin: 二进制数:111110001 对应十进制编号第497瓶药水

2022-04-16 19:18:55.822 17472-17472/com.example.aaaa D/tanlin: 二进制数:111110010 对应十进制编号第498瓶药水

2022-04-16 19:18:55.822 17472-17472/com.example.aaaa D/tanlin: 二进制数:111110011 对应十进制编号第499瓶药水

2022-04-16 19:18:55.822 17472-17472/com.example.aaaa D/tanlin: 二进制数:111110100 对应十进制编号第500瓶药水

我们分别对500瓶药水进行了编号,让9只小白鼠喝下去按照

方式,根据小白鼠们的存活情况,判断对应的哪个编号有毒药。

举例:第499瓶药水  111110011

我们可以给 1 2 3 4 5 8 9 喝 如果它们都死亡则有毒药水就是第499瓶药。

二进制数:0000001111 对应十进制编号第15瓶药水

我们可以给 6 7 8 9 喝 如果6,7,8,9小白鼠都死亡则有毒药水就是第15瓶药。

后续可以用代码实现判断哪瓶药有毒药。

上一篇 下一篇

猜你喜欢

热点阅读