经典智力题推广——过桥问题(一).docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
经典智力题推广——过桥问题(一) 一、问题   在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,四人所需要的时间分别是1、2、5、8分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这四人尽快过桥。   假设这四人分别为A、B、C、D。很明显,开始两人拿着手电筒过桥后,手电筒就在桥的另一边了,此时需要已经过桥的那两人中的一个再把手电筒送回桥这边。送手电筒回来过桥也要化时间,所以要选一个跑得比较快的。一个很自然的想法就是,每次让跑得最快的A陪着另一个过桥,然后A快速地跑回来,再陪下一位过去,最后所有人就都可以过桥了。   让我们来算一下这要多长时间。为了方便起见,我们把旅行者出发的桥的这一边称为“此岸”,而把旅行者想要到达的那边叫“彼岸”。在表达一个过桥方案时,我们用“←”来表示从彼岸到此岸的移动,用“→”表示从此岸到彼岸的移动。前面“A护送大家过河”的方案就可以写成:(右边数字为完成此步骤所需时间)           A B → 2             A ← 1           A C → 5             A ← 1           A D → 8 一共就是2+1+5+1+8=17分钟。   但其实有更快的办法:           A B → 2             A ← 1           C D → 8             B ← 2           A B → 2 一共是2+1+8+2+2=15分钟。这个办法的聪明之处在于让两个走得最慢的人同时过桥,这样花去的时间只是走得最慢的那个人花的时间,而走得次慢的那位就不用另花时间过桥了。可以把所有可能的方案都列举一遍,就会发现这是最快的方案了。   现在我们把这个问题推广到N(N≥4)个人过桥的情况:如果有N个旅行者,假设他们有各自所需的过桥时间(正实数)。在只有一只手电筒的情况下,要过上述的一条桥,怎样才能找到最快的过桥方案?   假设最快地把N个旅行者从此岸移动到彼岸需要f分钟时间,那么我们把所有在f分钟时间内把N个旅行者从此岸移动到彼岸的方案称为“最佳方案”。最佳方案很有可能不止一个,我们的目的是要找到一个最佳方案,但是并不需要把所有的最佳方案全都找出来。 二、一个合理的假设   为了讨论的方便起见,这一节我们要说明的是,事实上我们可以假设每个旅行者的速度都是不一样的。这样当我们说一些人中“最快的那个”,“次慢的那一个”时,都不会有歧义了,因为每个人的速度都是独一无二的。这个假设在讨论中并非必要,只是为了在证明的叙述过程中避免不断地啰嗦类似“我们让两人中最快的那个过桥,如果两人一样快,那就随便选一人”、“我们选在彼岸最快的那个人回来,如果上一步刚从此岸到彼岸的人中,其中有一个是现在彼岸走得最快的之一,我们就特别选择让他回来”之类的话。   为什么我们可以假设每个旅行者的速度都是不一样的?原理就在于,我们可以把原来过桥时间相同的旅行者的过桥时间分别加上一个不同的但是非常非常小的量,这样就能保证旅行者的速度是不一样的了。但是因为加上去的量都非常小,所以对最终总的过桥时间的影响也非常小。所以这样改动过后得到的最佳方案在原来的条件下实施的话,也该是原来条件下的最佳方案。   如果你对上面的说明满意了,就完全可以跳过这一节直接看第三节。这一节后面啰哩叭嗦的都是为了向一些对严格性要求比较高的朋友解释上面所说的方法的确可行。   首先对于任何一组N个旅行者,假定他们过桥所需的时间分别为a1、a2、……、aN,它们都是大于零的实数。假设这个序列已经从小到大排列了(当然不排除其中有数相等)。每次都由第一个旅行者陪同一个人过桥,然后第一个旅行者回来,这样一个方案所需要的时间是:     S = (N-2)*a1+a2+……+an (第一个旅行者要返回N-2次)。所以最佳方案所需要的时间一定不会比S大。   我们把一个过桥方案中让一个或者两个人拿着手电筒从桥的一边走到另一边的一次移动叫做这个方案中的一次移动或者“一步”,就是前面解四个人的题中使用“→”或“←”来表示的一个步骤。因为一次移动所需要的最少的时间是a1分钟,所以最佳方案中所需的移动步数一定不会多于K=[S/a1]步,这里[]是取整运算。   让我们考虑一下所有在K步以内完成的方案。上面的例子表明这样的方案至少有一个,而且这样的方案显然只有有限多个,假设一共有M个。我们又设这些方案执行时要花的时间是     t1、t2、……、tM 我们还可以假设上面这些时间已经从小到大排列了,t

文档评论(0)

vheedg6 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档