以图明志

计算机算法

趣味算法:老鼠试毒瓶问题

二进制的巧妙使用
大家应该都听说过这个老题目:有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?这个问题的答案也堪称经典:把瓶子从 0 到 999 依次编号,然后全部转换为 10 位二进制数。

计算机算法

趣味算法:生男生女的比例

阿里巴巴的一道面试题
阿里巴巴的一道面试题:说澳大利亚的父母喜欢女孩,如果生出来的第一个女孩,就不再生了,如果是男孩就继续生,直到生到第一个女孩为止,问若干年后,男女的比例是多少?刚看到问题是的思维逻辑:用递推法,假设一对夫妻,生了个女儿,就不再要了;另外一对夫妻,生了个儿子,再要一个,是女儿,然后也就不要了。第一感觉,应该是女的比男的多。

计算机算法

趣味算法:猴子搬香蕉问题

关乎数学规划
在博客园一篇文章末尾看到一个有趣的数学问题,据说是小学4年级的题目,摘引如下:一只小猴摘了300个香蕉,需要搬回家,每次最多搬100个。小猴离家100米,它每走1米,都需要吃掉1个香蕉来补充能量,请问它最多能够搬回家多少个?

计算机算法

趣味算法之猴子吃桃问题

倒推的思想
猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。此题用倒推的办法,所以注意循环结束的条件。多数情况下用循环为递增方式,本题中用递减方式,因此是: i >= 1 。

计算机算法

趣味算法之兔子产子问题

斐波那契(Fibonacci)数列的运用
假定你有一雄一雌一对刚出生的兔子,它们在长到一个月大小时开始交配,在第二月结束时,雌兔子产下另一对兔子,过了一个月后它们也开始繁殖,如此这般持续下去。每只雌兔在开始繁殖时每月都产下一对兔子,假定没有兔子死亡,在一年后总共会有多少对兔子? 在一月底,最初的一对兔子交配,但是还只有1对兔子。
1 / 1 首页 < Prev 1 Next > 尾页 页码: