代码改变世界

随笔分类 - 15-Puzzles

迷人的斐波那契数

2012-04-19 00:31 by Anders Cui, 4560 阅读, 收藏, 编辑
摘要:繁殖力超强的兔子说到斐波那契数,我们自然会想到曾经有一群繁殖力超强的兔子。比萨的商人斐波那契(Fibonacci,12-13世纪,称为比萨的列奥那多)接触到阿拉伯数学后,在其著作《Liber Abaci》中,引入了这个著名的兔子问题。但如果向前追溯下去,则可以追溯到古老的印度数学。斐波那契使用了一个理想化了的兔子生长模型进行研究,并假设:第一个月初有一对刚诞生的兔子两个月之后(第三个月初)它们可以生育每月每对可生育的兔子会诞生下一对新兔子兔子永不死去从第一个月开始,兔子的数目(对)依次是:1,1,2,3,5,8。。。这样就形成了一个序列,记为{Fn},则该序列存在一个递推关系:F(n)=F(n 阅读全文

趣题一则:交替放置的碟子

2012-04-16 21:43 by Anders Cui, 1541 阅读, 收藏, 编辑
摘要:有数量为2n的一排碟子,n黑n白交替放置。现在要把黑碟子都放在右边,白碟子都放在左边,但只允许通过交换相邻碟子的位置来实现。实现这个过程要交换多少次?分析首先把问题转化一下,用1表示黑碟子,0表示白碟子,那么目前的顺序是:1010...1010结果要求1都放在右边,0都放在左边。这个题目看起来很眼熟。看关键字:交换相邻的碟子,排好顺序。嗯,就是经常出现在面试中的冒泡排序了。为便于观察,假设目前有6个碟子:101010。使用冒泡排序,第一次迭代,碟子序列变为:010101,交换3次。在进行第二次迭代之前,观察一下。现在,不仅第一个碟子就位,最后一个也是了,因此第二次迭代只需要对第2到第5个进行排 阅读全文

趣题一则:冯·诺依曼邻居问题

2012-04-15 00:51 by Anders Cui, 127 阅读, 收藏, 编辑
只有注册用户登录后才能阅读该文。 阅读全文

趣题一则:寻找那扇门

2012-04-10 23:51 by Anders Cui, 1577 阅读, 收藏, 编辑
摘要:现在出现在你面前的是一堵朝两个方向无限延伸的墙。墙上有一扇门,但你并不确定门离你有多远,也不知道门位于哪个方向(左边或是右边)。你只有在走到门面前才能看到它。假设从当前位置到门要走n步(n大小未知),那么怎样走O(n)步就能找到那扇门?分析这道题让人“左右为难”,因为不确定如何才能走到尽快确定方向和位置。首先想到在错误的方向上走得越远,就意味着离正确的位置越远,因此较为保险的方法是,第一步向右走,看看有没有门;第二步——为了防止在错误的方向上渐行渐远——向左走,走两步,这样就可以确定在最初位置的一步范围内有没有门了。接下来,按照类似的方式左右徘徊,依次确定在最初位置的2,3,...,n有没有门 阅读全文

趣题一则:如何快速过桥?

2011-06-03 00:31 by Anders Cui, 1042 阅读, 收藏, 编辑
摘要:有四个人打算过桥,他们都在桥的某一端,他们的任务是在17分钟内全部到达桥的另一头。当时是晚上,他们只有一只手电筒,最多只能有两人同时过桥,因为伸手不见五指,必须要携带手电筒。必须步行将手电筒带来带去,即扔来扔去是不行的。每个人走路的速度是不同的:甲过桥需要1分钟,乙需要2分钟,丙需要5分钟,丁需要10分钟。两个人一起走的速度等于其中较慢的人的速度。例如,如果第一次让甲和丁一起过桥,当他们到桥的另一端时,已经用了10分钟,如果由丁带回手电筒,那么20分钟就过去了,于是任务失败。那他们到底该怎样过去呢?如何完成任务?第一次甲和乙同行,然后乙回去送手电筒,用掉4分钟;下一次丙和丁同行,甲回去,用掉1 阅读全文