经典智力题推广——过桥问题(一)
- 格式:doc
- 大小:64.50 KB
- 文档页数:13
第1篇一、前言过桥过河智力测试题是一款考验智力、逻辑思维、观察力和策略规划的趣味游戏。
它以过河为背景,通过解决一系列难题,锻炼玩家的思维能力和解决问题的能力。
下面将为您呈现一系列过桥过河智力测试题,让您在游戏中挑战自我,提升智力。
二、过桥过河智力测试题1. 小明、小红、小华和小丽四个小伙伴过河,他们分别骑着自行车、电动车、摩托车和拖拉机。
桥上只能同时通过一辆车,且不能让两辆同类型的车同时过桥。
小明骑自行车,小红骑电动车,小华骑摩托车,小丽骑拖拉机。
请问,他们如何过桥?答案:小明先骑自行车过桥,然后返回接小红;小红骑电动车过桥,小华骑摩托车过桥,然后小华返回接小丽;小丽骑拖拉机过桥,小明再次骑自行车过桥。
2. 有一天,小红、小华、小丽和小明过桥,他们分别带着一个苹果、一个橘子、一个香蕉和一个梨。
桥上只能同时通过一个水果,且不能让两种同类型的水果同时过桥。
小明带着苹果,小红带着橘子,小华带着香蕉,小丽带着梨。
请问,他们如何过桥?答案:小明先带苹果过桥,然后返回接小红;小红带橘子过桥,小华带香蕉过桥,然后小华返回接小丽;小丽带梨过桥,小明再次带苹果过桥。
3. 一家人过桥,爸爸、妈妈、儿子和女儿分别带着一个玩具、一个书、一个画和一辆玩具车。
桥上只能同时通过一个物品,且不能让两种同类型的物品同时过桥。
爸爸带着玩具,妈妈带着书,儿子带着画,女儿带着玩具车。
请问,他们如何过桥?答案:爸爸先带玩具过桥,然后返回接妈妈;妈妈带书过桥,儿子带画过桥,然后儿子返回接女儿;女儿带玩具车过桥,爸爸再次带玩具过桥。
4. 一群朋友过桥,他们分别带着一个球、一个篮球、一个足球和一个乒乓球。
桥上只能同时通过一个球类,且不能让两种同类型的球类同时过桥。
小张带着球,小王带着篮球,小李带着足球,小赵带着乒乓球。
请问,他们如何过桥?答案:小张先带球过桥,然后返回接小王;小王带篮球过桥,小李带足球过桥,然后小李返回接小赵;小赵带乒乓球过桥,小张再次带球过桥。
过桥问题(1)过桥问题是行程问题的一种情况。
我们所说的列车通过一座桥,是指从车头上桥到车尾离桥的这个过程。
这时,列车行驶的总路程是桥长加上车长,这是解决过桥问题的关键。
过桥问题也是在研究路程、速度、时间这三量之间的关系。
过桥问题的一般数量关系是:路程=桥长+车长车速=(桥长+车长)÷通过时间通过时间=(桥长+车长)÷车速桥长=车速×通过时间-车长车长=车速×通过时间-桥长通过隧道的问题和过桥问题的道理是一样的,也要通过上面的数量关系来解决。
【典型例题】例1. 一列火车经过南京长江大桥,大桥长6700米,这列火车长140米,火车每分钟行400米,这列火车通过长江大桥需要多少分钟?分析:这道题求的是通过时间。
根据数量关系式,我们知道要想求通过时间,就要知道路程和速度。
路程是用桥长加上车长。
火车的速度是已知条件。
总路程:67001406840+=(米) 通过时间:6840400171÷=.(分钟) 答:这列火车通过长江大桥需要17.1分钟。
例2. 一列火车长200米,全车通过长700米的桥需要30秒钟,这列火车每秒行多少米? 分析与解答:这是一道求车速的过桥问题。
我们知道,要想求车速,我们就要知道路程和通过时间这两个条件。
可以用已知条件桥长和车长求出路程,通过时间也是已知条件,所以车速可以很方便求出。
总路程:200700900+=(米) 火车速度:9003030÷=(米) 答:这列火车每秒行30米。
例3. 一列火车长240米,这列火车每秒行15米,从车头进山洞到全车出山洞共用20秒,山洞长多少米?分析与解答:火车过山洞和火车过桥的思路是一样的。
火车头进山洞就相当于火车头上桥;全车出洞就相当于车尾下桥。
这道题求山洞的长度也就相当于求桥长,我们就必须知道总路程和车长,车长是已知条件,那么我们就要利用题中所给的车速和通过时间求出总路程。
总路程:1520300⨯=山洞长:30024060-=(米)答:这个山洞长60米。
经典算法⼀---过桥问题题⽬:在漆⿊的夜⾥,四位旅⾏者来到了⼀座狭窄⽽且没有护栏的桥边。
如果不借助⼿电筒的话,⼤家是⽆论如何也不敢过桥去的。
不幸的是,四个⼈⼀共只带了⼀只⼿电筒,⽽桥窄得只够让两个⼈同时通过。
如果各⾃单独过桥的话,四⼈所需要的时间分别是1,2,5,8分钟;⽽如果两⼈同时过桥,所需要的时间就是⾛得⽐较慢的那个⼈单独⾏动时所需的时间。
问题是,你如何设计⼀个⽅案,让⽤的时间最少。
针对上篇算法题--过桥问题的解析如下解答其实也容易,能者多劳这四个字就⾜以形容解答⽅案了——⽤时短的⼈必须要多跑⼏趟以便传递⼿电筒。
设这四个⼈叫做A,B,C,D,他们所需要的时间分别是1,2,5,8分钟。
第⼀步:A和B过桥,花费2分钟。
第⼆步:A回来,花费1分钟。
第三步:C和D过桥,花费8分钟。
第四步:B回来,花费2分钟。
第五步:A和B过桥,花费2分钟。
这样只要花费2+1+8+2+2=15分钟,下⾯再来考虑如何⽤程序来解决这类问题,在写程序之前还有个细节要考虑下,⽐如A,B,C,D四个⼈所需要的时间分别是1,8,9,10分钟。
⽅案⼀第⼀步:A和B过桥,花费8分钟。
第⼆步:A回来,花费1分钟。
第三步:C和D过桥,花费10分钟。
第四步:B回来,花费8分钟。
第五步:A和B过桥,花费8分钟。
⼀共要8+1+10+8+8=35分钟。
⽅案⼆第⼀步:A和B过桥,花费8分钟。
第⼆步:A回来,花费1分钟。
第三步:A和C过桥,花费9分钟。
第四步:A回来,花费1分钟。
第五步:A和D过桥,花费10分钟。
⼀共要8+1+9+1+10=29分钟。
因此可以得出更加细化的解决⽅案——要么是最快者将最慢的2个送过桥,要么是最快的2个将最慢的2个送过桥。
即将过桥的⼈按其过桥的时间从⼩到⼤排列,设为A,B,……Y,Z。
其中A和B是最快的⼆个,Y和Z是最慢的⼆个。
那么就有⼆种⽅案:⽅案⼀ 最快者将最慢的2个送过桥第⼀步:A和Z过桥,花费Z分钟。
第⼆步:A回来,花费A分钟。
过桥问题(1)过桥问题是行程问题的一种情况。
我们所说的列车通过一座桥,是指从车头上桥到车尾离桥的这个过程。
这时,列车行驶的总路程是桥长加上车长,这是解决过桥问题的关键。
过桥问题也是在研究路程、速度、时间这三量之间的关系。
过桥问题的一般数量关系是:路程=桥长+车长车速=(桥长+车长)÷通过时间通过时间=(桥长+车长)÷车速桥长=车速×通过时间-车长车长=车速×通过时间-桥长通过隧道的问题和过桥问题的道理是一样的,也要通过上面的数量关系来解决。
【典型例题】例1. 一列火车经过南京长江大桥,大桥长6700米,这列火车长140米,火车每分钟行400米,这列火车通过长江大桥需要多少分钟?分析:这道题求的是通过时间。
根据数量关系式,我们知道要想求通过时间,就要知道路程和速度。
路程是用桥长加上车长。
火车的速度是已知条件。
+=(米)总路程:67001406840÷=.(分钟)通过时间:6840400171答:这列火车通过长江大桥需要17.1分钟。
例2. 一列火车长200米,全车通过长700米的桥需要30秒钟,这列火车每秒行多少米?分析与解答:这是一道求车速的过桥问题。
我们知道,要想求车速,我们就要知道路程和通过时间这两个条件。
可以用已知条件桥长和车长求出路程,通过时间也是已知条件,所以车速可以很方便求出。
+=(米)总路程:200700900÷=(米)火车速度:9003030答:这列火车每秒行30米。
例3. 一列火车长240米,这列火车每秒行15米,从车头进山洞到全车出山洞共用20秒,山洞长多少米?分析与解答:火车过山洞和火车过桥的思路是一样的。
火车头进山洞就相当于火车头上桥;全车出洞就相当于车尾下桥。
这道题求山洞的长度也就相当于求桥长,我们就必须知道总路程和车长,车长是已知条件,那么我们就要利用题中所给的车速和通过时间求出总路程。
⨯=总路程:1520300-=(米)山洞长:30024060答:这个山洞长60米。
过桥问题过桥问题也是行程问题的一种。
首先要弄清列车通过一座桥是指从车头上桥到车尾离桥。
列车过桥的总路程是桥长加车长,这是解决过桥问题的关键。
过桥问题也要用到一般行程问题的基本数量关系:过桥问题的一般数量关系是:过桥的路程 = 桥长 + 车长车速 = (桥长 + 车长)÷过桥时间通过桥的时间 =(桥长 + 车长)÷车速桥长 = 车速×过桥时间—车长车长 = 车速×过桥时间—桥长后三个都是根据第二个关系式逆推出的。
火车通过隧道的问题和过桥问题的道理是一样的,也要通过上面的数量关系来解决。
【典型例题】例1:一列客车经过南京长江大桥,大桥长6700米,这列客车长100米,火车每分钟行400米,这列客车经过长江大桥需要多少分钟?分析与解:从火车头上桥,到火车尾离桥,这之间是火车通过这座大桥的过程,也就是过桥的路程是桥长+ 车长。
通过“过桥的路程”和“车速”就可以求出火车过桥的时间。
(1)过桥路程:6700 + 100 = 6800(米)(2)过桥时间:6800÷400 = 17(分)答:这列客车通过南京长江大桥需要17分钟。
例2:一列火车长160米,全车通过440米的桥需要30秒钟,这列火车每秒行多少米?分析与解:要想求火车过桥的速度,就要知道“过桥的路程”和过桥的时间。
(1)过桥的路程:160 + 440 = 600(米)(2)火车的速度:600÷30 = 20(米)答:这列火车每秒行20米。
想一想:你能根据例2改编一个求“火车长”的题目吗?例3:某列火车通过360米的第一个隧道用了24秒钟,接着通过第二个长216米的隧道用了16秒钟,求这列火车的长度?分析与解:火车通过第一个隧道比通过第二个隧道多用了8秒,为什么多用8秒呢?原因是第一个隧道比第二个隧道长360—216 = 144(米),这144米正好和8秒相对应,这样可以求出车速。
火车24秒行进的路程包括隧道长和火车长,减去已知的隧道长,就是火车长。
第1篇第一章:序章——智慧之桥的传说在遥远的古代,有一座神奇的桥梁,名为“智慧之桥”。
这座桥梁横跨在知识之海与愚昧之滩之间,只有通过这座桥梁,人们才能抵达智慧的彼岸。
相传,只有真正具备智慧与勇气的人,才能成功跨越这座桥梁。
现在,让我们一同踏上这场跨越思维的旅程,挑战自我,探索智慧的奥秘。
第二章:智慧之桥的试炼为了测试你的智慧与勇气,智慧之桥为你准备了十道关卡。
只有全部通过,你才能抵达智慧的彼岸。
请认真思考,勇敢作答。
【第一关】谜语之谜题目:一个物品,可以借,不能还,能吃,不能咽,能送,不能留,是什么?【第二关】数字之谜题目:1+1=?【第三关】字母之谜题目:将字母“B”旋转180度,会变成什么字母?【第四关】成语之谜题目:下列成语中,哪一个与其他三个不同?A. 一箭双雕B. 一石二鸟C. 一网打尽D. 一举两得【第五关】地理之谜题目:下列国家中,哪一个位于非洲?A. 法国B. 摩洛哥C. 瑞士D. 埃及【第六关】历史之谜题目:以下哪位历史人物不是皇帝?A. 秦始皇B. 汉武帝C. 唐太宗D. 成吉思汗【第七关】文学之谜题目:下列诗句中,哪一句与其他三句不同?A. 窈窕淑女,君子好逑。
B. 庭前明月光,疑是地上霜。
C. 红豆生南国,春来发几枝。
D. 人生得意须尽欢,莫使金樽空对月。
【第八关】科学之谜题目:以下哪项不是光的基本特性?A. 直线传播B. 可见光C. 热效应D. 电效应【第九关】艺术之谜题目:下列哪位艺术家不是画家?A. 达芬奇B. 梵高C. 毕加索D. 贝多芬【第十关】人生之谜题目:以下哪句话最能体现人生哲理?A. 天生我材必有用。
B. 世上无难事,只怕有心人。
C. 欲望无穷,人生短暂。
D. 人生如梦,一枕黄粱。
第三章:答案与解析【第一关】答案:空气解析:空气可以借,但不能还;可以吃,但不能咽;可以送,但不能留。
【第二关】答案:2解析:这是一个简单的数学问题,1+1=2。
【第三关】答案:Q解析:将字母“B”旋转180度,会变成字母“Q”。
过桥(5个问题附答案)U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来回桥两端手电筒是不能用丢的方式来传递的四个人的步行速度各不同,若两人同行则以较慢者的速度为准Bono需花1分钟过桥,Edge需花2分钟过桥,Adam需花5分钟过桥,Larry需花10分钟过桥他们要如何在17分钟内过桥呢?(二)出生概率一个家庭有两个小孩,其中有一个是女孩,问另一个也是女孩的概率是多少?(假定生男生女的概率一样)(三)井盖为什么下水道的盖子是圆的?(四)分盐有7克2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐分成5090克各一份?(五)芯片测试有2k块芯片,已知好芯片比坏芯片多.请设计算法从其中找出一片好芯片,说明你所用的比较次数上限.其中:好芯片和其它芯片比较时,能正确给出另一块芯片是好还是坏.坏芯片和其它芯片比较时,会随机的给出好或是坏答案:(一)过桥假设这四个人分别为甲(1分钟)乙(2分钟)丙(5分钟)丁(10分钟)第一次去:甲和乙(2分钟)第一次回:甲(1分钟)第二次去:丙和丁(10分钟)第二次回:乙(2分钟)第三次去:甲和乙(2分钟)总计:17分钟(二)出生概率1/3(因为你知道一共有两个小孩,其中一个是女孩,而你已知的那个女孩并不知道是她第一个孩子还是第二个孩子,所以它的概率是1/3。
如果题目换成已知第一个是女孩那么第二个是女孩的概率就是1/2了)(三)井盖主要是因为如果是方的长方的或椭圆的,盖子很容易掉进地下道!但圆形的盖子嘛,就可以避免这种情况了另外圆形的盖子可以节省材料,增大洞口面积,井盖及井座的强度增加不易轧坏(四)分盐1.天平一边放7+2=9克砝码,另一边放9克盐2.天平一边放7克砝码和刚才得到的9克盐,另一边放16克盐3.天平一边放刚才得到的16克盐和再刚才得到的9克盐,另一边放25克盐(五)芯片测试把第一块芯片与其它逐一对比,看看其它芯片对第一块芯片给出的是好是坏,如果给出是好的过半,那么说明这是好芯片,完毕如果给出的是坏的过半,说明第一块芯片是坏的,那么就要在那些在给出第一块芯片是坏的芯片中,重复上述步骤,直到找到好的芯片为止。
过桥问题过桥问题也是行程问题的一种。
首先要弄清列车通过一座桥是指从车头上桥到车尾离桥。
列车过桥的总路程是桥长加车长,这是解决过桥问题的关键。
过桥问题也要用到一般行程问题的基本数量关系:过桥问题的一般数量关系是:过桥的路程= 桥长+ 车长车速= (桥长+ 车长)÷过桥时间通过桥的时间=(桥长+ 车长)÷车速桥长= 车速×过桥时间—车长车长= 车速×过桥时间—桥长后三个都是根据第二个关系式逆推出的。
火车通过隧道的问题和过桥问题的道理是一样的,也要通过上面的数量关系来解决。
【典型例题】例1:一列客车经过南京长江大桥,大桥长6700米,这列客车长100米,火车每分钟行400米,这列客车经过长江大桥需要多少分钟?分析与解:从火车头上桥,到火车尾离桥,这之间是火车通过这座大桥的过程,也就是过桥的路程是桥长+ 车长。
通过“过桥的路程”和“车速”就可以求出火车过桥的时间。
(1)过桥路程:6700 + 100 = 6800(米)(2)过桥时间:6800÷400 = 17(分)答:这列客车通过南京长江大桥需要17分钟。
例2:一列火车长160米,全车通过440米的桥需要30秒钟,这列火车每秒行多少米?分析与解:要想求火车过桥的速度,就要知道“过桥的路程”和过桥的时间。
(1)过桥的路程:160 + 440 = 600(米)(2)火车的速度:600÷30 = 20(米)答:这列火车每秒行20米。
想一想:你能根据例2改编一个求“火车长”的题目吗?例3:某列火车通过360米的第一个隧道用了24秒钟,接着通过第二个长216米的隧道用了16秒钟,求这列火车的长度?分析与解:火车通过第一个隧道比通过第二个隧道多用了8秒,为什么多用8秒呢?原因是第一个隧道比第二个隧道长360—216 = 144(米),这144米正好和8秒相对应,这样可以求出车速。
火车24秒行进的路程包括隧道长和火车长,减去已知的隧道长,就是火车长。
经典智力题推广——过桥问题(一)一、问题在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。
如果不借助手电筒的话,大家是无论如何也不敢过桥去的。
不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。
如果各自单独过桥的话,四人所需要的时间分别是1、2、5、8分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。
问题是,如何设计一个方案,让这四人尽快过桥。
假设这四人分别为A、B、C、D。
很明显,开始两人拿着手电筒过桥后,手电筒就在桥的另一边了,此时需要已经过桥的那两人中的一个再把手电筒送回桥这边。
送手电筒回来过桥也要化时间,所以要选一个跑得比较快的。
一个很自然的想法就是,每次让跑得最快的A 陪着另一个过桥,然后A快速地跑回来,再陪下一位过去,最后所有人就都可以过桥了。
让我们来算一下这要多长时间。
为了方便起见,我们把旅行者出发的桥的这一边称为“此岸”,而把旅行者想要到达的那边叫“彼岸”。
在表达一个过桥方案时,我们用“←”来表示从彼岸到此岸的移动,用“→”表示从此岸到彼岸的移动。
前面“A护送大家过河”的方案就可以写成:(右边数字为完成此步骤所需时间)A B→ 2A← 1A C→ 5A← 1A D→8一共就是2+1+5+1+8=17分钟。
但其实有更快的办法:A B→ 2A← 1C D→8B← 2A B→ 2一共是2+1+8+2+2=15分钟。
这个办法的聪明之处在于让两个走得最慢的人同时过桥,这样花去的时间只是走得最慢的那个人花的时间,而走得次慢的那位就不用另花时间过桥了。
可以把所有可能的方案都列举一遍,就会发现这是最快的方案了。
现在我们把这个问题推广到N(N≥4)个人过桥的情况:如果有N个旅行者,假设他们有各自所需的过桥时间(正实数)。
在只有一只手电筒的情况下,要过上述的一条桥,怎样才能找到最快的过桥方案?假设最快地把N个旅行者从此岸移动到彼岸需要f分钟时间,那么我们把所有在f分钟时间内把N个旅行者从此岸移动到彼岸的方案称为“最佳方案”。
最佳方案很有可能不止一个,我们的目的是要找到一个最佳方案,但是并不需要把所有的最佳方案全都找出来。
二、一个合理的假设为了讨论的方便起见,这一节我们要说明的是,事实上我们可以假设每个旅行者的速度都是不一样的。
这样当我们说一些人中“最快的那个”,“次慢的那一个”时,都不会有歧义了,因为每个人的速度都是独一无二的。
这个假设在讨论中并非必要,只是为了在证明的叙述过程中避免不断地啰嗦类似“我们让两人中最快的那个过桥,如果两人一样快,那就随便选一人”、“我们选在彼岸最快的那个人回来,如果上一步刚从此岸到彼岸的人中,其中有一个是现在彼岸走得最快的之一,我们就特别选择让他回来”之类的话。
为什么我们可以假设每个旅行者的速度都是不一样的?原理就在于,我们可以把原来过桥时间相同的旅行者的过桥时间分别加上一个不同的但是非常非常小的量,这样就能保证旅行者的速度是不一样的了。
但是因为加上去的量都非常小,所以对最终总的过桥时间的影响也非常小。
所以这样改动过后得到的最佳方案在原来的条件下实施的话,也该是原来条件下的最佳方案。
如果你对上面的说明满意了,就完全可以跳过这一节直接看第三节。
这一节后面啰哩叭嗦的都是为了向一些对严格性要求比较高的朋友解释上面所说的方法的确可行。
首先对于任何一组N个旅行者,假定他们过桥所需的时间分别为a1、a2、……、a N,它们都是大于零的实数。
假设这个序列已经从小到大排列了(当然不排除其中有数相等)。
每次都由第一个旅行者陪同一个人过桥,然后第一个旅行者回来,这样一个方案所需要的时间是:S = (N-2)*a1+a2+……+a n(第一个旅行者要返回N-2次)。
所以最佳方案所需要的时间一定不会比S大。
我们把一个过桥方案中让一个或者两个人拿着手电筒从桥的一边走到另一边的一次移动叫做这个方案中的一次移动或者“一步”,就是前面解四个人的题中使用“→”或“←”来表示的一个步骤。
因为一次移动所需要的最少的时间是a1分钟,所以最佳方案中所需的移动步数一定不会多于K=[S/a1]步,这里"[]"是取整运算。
让我们考虑一下所有在K步以内完成的方案。
上面的例子表明这样的方案至少有一个,而且这样的方案显然只有有限多个,假设一共有M个。
我们又设这些方案执行时要花的时间是t1、t2、……、t M我们还可以假设上面这些时间已经从小到大排列了,t1就是最佳方案所需要的时间。
现在是关键的步骤。
我们要选取一个很小的正实数ε>0。
它有多小呢?它必须满足下面的条件:1) 对于任何两个过桥时间不同的旅行者(假设他们的过桥时间是a和b分钟),必须满足ε<|a-b|/N。
换句话说,Nε要小于不同的旅行者过桥时间之间的差别。
2) 对于任何两个所需的完成时间不同的K步以内的方案(假设它们的所需时间是t和s分钟),必须满足ε<|t-s|/K。
换句话说,Kε要小于不同的方案完成时间之间的差别。
因为旅行者的数目和方案的数目都是有限的,所以我们必然可以选取这样一个ε。
至于这两个条件有什么用,我们马上就可以看到。
假设若干个旅行者过桥的时间都是一样的a分钟,我们就把题目改一下,使得他们的过桥时间分别为a、a+ε/N、a+2ε/N、a+3ε/N……如果有其他的旅行者过桥时间相互一样,也按照同样方式修改题目。
这时在修改后的题目中,如果原来两个旅行者所需的过桥时间相同,那么现在就变得不同,差一个非常小的量(不会超过ε);如果原来两个旅行者所需的过桥时间不同,那么根据上面的条件1),现在还是不同,而且原来谁比较快,现在仍旧是他比较快。
我们看看这个修改后的题目的最佳方案和原来的题目的最佳方案有什么联系。
假设我们已经有一个关于修改后的题目的最佳方案,那么它所需要的时间必定是这个模样的:a + bε我们知道bε部分是修改时把旅行者过桥时间“微调”了以后造成的,而且每走一步这部分的改变不会超过ε,所以我们有0<b<K=[S/a1]。
如果我们把这个最佳移动方案照搬到原来的题目中去,所需要的时间就是a分钟。
这个方案应该同样是原来题目中的最佳方案。
否则的话,假设我们有另一个方案,所需时间为a',而且a'<a。
根据上面取ε时候的条件2),我们有a' < a + Kε把这个耗时a'的方案搬到改动过的题目里去的话,所需的时间就会是a' + b'ε其中0<b'<K。
所以根据a'<a+Kεa' + b'ε < a + bε这就和a+bε是改动后题目的最佳方案所需的时间矛盾了。
所以只要找到一个修改过的题目中的最佳方案,我们就得到了原来题目中的一个最佳方案,于是我们只要考虑所有旅行者的速度都不同的题目就可以了。
三、一个“很显然”的结论编个计算机程序,把所有步数少于上一节中所计算的K=[S/a1]的可能的过桥方案都列举一遍,然后找出最快的,当然是一种方法,这理论上也是可行的,因为少于K步的方案只有有限多个,计算机程序必定能够将它们全部列举出来。
只是当人数N增大时,过桥方案数会增加得很快。
事实上,如果我们只考虑“每次过去两个人,然后这两个人中其中一个人回来”这类方案的数目的数量就已经远远超过N!个了,想像一下如果N=1000的话所需要的计算量!况且还有更多数量的其他类型方案。
特别是,我们是在做智力题,不是在学编程。
当然你还可以说,如果人多的话,所需要的时间超过了12小时,那时天已经亮了,不再需要手电筒,大家可以直接过桥——唉!我们是在做智力题,不是在做抬杠式的脑筋急转弯——我们可以假设是在有漫长极夜的极地嘛,要不然,这桥是在一个黑暗山洞里,就象电影《指环王》中的那样……但是如果不用列举法的话,我们有一个重要的任务要做,就是不仅要说明如何找到一个我们自以为最快的方案,而且还要证明这样的方法的确给出了一个最佳方案。
在我们的直觉当中,最快的方案必然有这样一个特征:每次过桥去彼岸的一定是两个人,然后一定只有一个人把手电筒送回此岸(当然要除去最后一次过桥的情况,那时就不需有人把手电筒送回来了)。
但是为什么一定是这样的呢?为什么不可能有一个意想不到的巧妙方案,在那里有某一步居然需要一个人单独过到彼岸去,或者需要有两个人把手电筒送回此岸来?这是个看起来很显而易见但是我们不能支吾不回答的问题。
在讨论中我们经常需要说明,在某一时刻,桥的两边分别有哪些人,手电筒又在哪一边。
这样的说明称为一个“局面”。
当然,一个局面必须是合理的。
比如说,不能够所有人都在桥的一边,而手电筒却在桥的另一边;一个人必须处在桥的某一边,而且只能处在桥的某一边。
比如说,在四个旅行者的问题里,如果某一个时刻A、B和C在此岸,而D在彼岸,手电筒也在彼岸,这就给出了一个局面(这个局面看起来有点奇怪,大概是D拿着手电筒一个人跑过桥去了,接下去除了他再拿着手电筒回来别无它法)。
所有人和手电筒都在此岸,就是一个特殊的局面,叫作初始局面;而所有人和手电筒都在彼岸,也是一个特殊的局面,叫完结局面;所有其他的局面我们称为中间局面。
想像一下现在有两种局面。
在两种局面中,手电筒都在桥的同一边(都在此岸或都在彼岸);而且在第一种局面里所有在彼岸的旅行者,在第二种局面里也都在彼岸,而且有这样的旅行者,在第一种局面中他在此岸,而第二种局面中他在彼岸。
那么我们就说第二种局面“优于”第一种局面。
比如说,在四个旅行者的问题里,第一种局面是A、B和C在此岸,而D在彼岸,手电筒也在彼岸;第二种局面是A和B在此岸,C和D在彼岸,手电筒也在彼岸。
那么第二种局面就优于第一种局面。
很显然,除了初始局面以外,所有手电筒在此岸的局面都优于初始局面;除了完结局面本身外,完结局面要优于所有手电筒在彼岸的局面。
但是要注意的是,并不是任意给两个局面都能比较哪个优于哪个,比如说初始局面和完结局面,谁都不优于谁。
如果现在有两个局面,第二种局面要优于第一种局面。
假设现在我已经有了一个方案,从第一种局面开始,通过符合题目要求的方法来移动旅行者(最多只能同时移动两个旅行者,手电筒必须和他们一起移动),在t分钟内能够使所有旅行者到达彼岸(也就是说转变成完结局面,或者说“解决”了这种局面),那么我们可以保证我们同样也有了一个方案,从第二种局面开始,在不多于t分钟内使它转变成完结局面。
为什么呢?假设第一种局面的方案中的第一步是要把某个(或某两个)旅行者从此岸移动到彼岸(这时手电筒开始一定在此岸)。
1) 如果被移动的这个(或这两个)旅行者,在第二种局面里也在此岸,那么我们同样把他们从此岸移动到彼岸。
这时两个局面化了同样多的时间转化成另两个局面,而且仍旧是第二种局面优于第一种局面。
(严格说来应该是“从第二种局面演化来的局面要优于从第一种局面演化来的局面”,不过这样也太拗口了,所以在下面我都用前面那种虽然不严格但是比较简明的方法来叙述。