问题一:8瓶水,其中一瓶有毒,问要找出有毒的水,你至少要尝试几次?(前提是毒不死人的)
问题二:还是这个题目,另外提供一群小白鼠,现在要你同时给N只小白鼠喝水,问至少需要几只小白鼠能一次性找出毒水?
问题一比较简单,二分法,假设瓶子编号依次为0 1 2 3 4 5 6 7,先等分成2份,然后从其中一份中取出点水混合下,喝,有问题则毒水在这份中,没问题则毒水在另一份中,然后再二分,这样只需要尝试3次, 2^3=8。
问题二:至少需要3只小白鼠,二进制思想2^3=8,小白鼠喝完水的状态只有2种,要么生要么死,因此要判断8瓶水,必须要有3只白鼠才可以。
A B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
A B C分别是三只小白鼠,每只白鼠喝编号为它的下面出现1的数字代表的瓶,如A喝 4 5 6 7瓶,B喝 2 3 6 7,C喝1 3 5 7。或者喝下面出现0的数字代表的瓶也行。
问题二:还是这个题目,另外提供一群小白鼠,现在要你同时给N只小白鼠喝水,问至少需要几只小白鼠能一次性找出毒水?
问题一比较简单,二分法,假设瓶子编号依次为0 1 2 3 4 5 6 7,先等分成2份,然后从其中一份中取出点水混合下,喝,有问题则毒水在这份中,没问题则毒水在另一份中,然后再二分,这样只需要尝试3次, 2^3=8。
问题二:至少需要3只小白鼠,二进制思想2^3=8,小白鼠喝完水的状态只有2种,要么生要么死,因此要判断8瓶水,必须要有3只白鼠才可以。
A B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
A B C分别是三只小白鼠,每只白鼠喝编号为它的下面出现1的数字代表的瓶,如A喝 4 5 6 7瓶,B喝 2 3 6 7,C喝1 3 5 7。或者喝下面出现0的数字代表的瓶也行。