毒酒问题----算法设计与编程题------有1000桶酒,其中有一桶酒有毒.......

算法设计与编程题:

有1000桶酒,其中有一桶酒有毒,一只老鼠喝了毒酒后,一周后会毒性发作,若需要在一周之内找到这桶毒酒,请问至少需要几只老鼠,为什么?

说明:这道题用度娘一下,就能找到答案了。我再次在这里写成出来,一是,想分享一下我的解题思路;二是,当作学习笔记。

分析:

1、看到这题的直觉是:这题是一道查找题(找出有毒的酒),像在有序的数组里查找,二分查找,查找次数为ceil(log2N),所以这道题,猜测答案为10。

2、既然有这样的猜测,接下来就是验证。首先,我们可以从小规模的问题分析,再推广到大规模问题。因此,我们不妨,假设为8瓶酒(从1000-->8)。我们来回想一下,二分查找,[1,2,3,4,5,6,7,8]中查找:


用第一只老鼠喝1,2,3,4号酒,一周后,老鼠死,则1,2,3,4号酒有毒,否则6,7,8,9号酒有毒。……,经

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值