有一千瓶水,其中有一瓶是有毒的,老鼠喝了毒的水會在七天后死亡,請問需要幾只老鼠才能找出有毒的那瓶水?


思路:

使用二進制的格式來給每瓶水做標記,

第一瓶水:0000000001
第二瓶水:0000000010
第三瓶水:0000000011
.
.
.
第1000瓶水:1111101000

然后可以看出1000瓶水需要二進制數的位數為10位,所以找10只小白鼠,第一只小白鼠只和二進制數第一位為1的水,第二支小白鼠喝二進制數第二位為1的水,以此類推,第10只小白鼠喝二進制數第10位為1的水。

假如7天后1,3,5三只小白鼠死了,所以二進制數為1010100000,轉換為10進制數為29+27+2^5=672

所以需要10只小白鼠就可以,此類問題既需要用二進制表表示最大數就可以了,比如1000瓶水,210是1024,因為需要10只老鼠,100瓶水,27是128,所以需要7只老鼠


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM