问题描述
100瓶水,一瓶有毒,有一种试纸,不过需要一个小时才能出结果,问最少需要几片试纸才能在一小时内找到有毒的那一瓶。
答案
7
算法
算法的思想就是把数字用二进制表示。
算法详细
首先我们需要准备七张试纸:
- 然后对瓶子的编号进行二进制排序
比如:一号瓶子是000 0001
;七号瓶子是000 0111
;100号瓶子则是110 0100
。 - 按编号把瓶子的液体滴到试纸上
比如:一号瓶是000 0001
,就把一号液体滴到1号试纸;7好瓶是000 0111
,把七号液体滴到1、2、3号试纸上。 - 静等试纸变***r> 如果是1、3、5、7号试纸均变色,那么对应的
101 0101 = 75
号瓶就是有毒的。
算法的代码实现
- 先鸽一下(未完成)
参考文献
宋云飞.西安财经大学.2020.09.15