关闭

海盗问题和汉诺塔问题的分析

标签: 递归汉诺塔海盗问题
377人阅读 评论(0) 收藏 举报
分类:
海盗分金币问题:有100个金币和5名海盗,现在由5号海盗先分金币,假如它提出的方案有超过一半的海盗反对,就会被杀掉,换第4号海盗分,直到1号海盗为止。问5号海盗应该如何分配金币才能使自己利益最大化。(假设每个海盗都是理性的)

答案:给3号和1号海盗各分一枚金币,自己分99枚。

分析:我们反向分析,如果只有两名海盗1号和2号,那么由2号分金币的话1号1枚金币都得不到。所以3号只需要分给1号1枚金币就行了;同理2号海盗知道如果4号海盗死了自己将1枚金币都得不到,所以四号海盗只需分给2号海盗1枚金币就行了;同理5号海盗只需分给1号和3号海盗各1枚自己分98枚就行了。


汉诺塔问题:
整个过程分为三步:1.将上面n-1个盘子从左盘借助右盘移到中盘2.将第n个盘子从左盘直接移到右盘3.将n-1个盘子从中盘借助左盘移到右盘。
那么第一步和第三步又是递归的问题。
分析时间复杂度,递归的时间复杂度为2^n-1.
分析如下:设f(n)(n为盘子的个数)为要移动的次数。
f(1)=1;
f(n) = 2f(n-1)+1;//第一步和第三步的移动次数是一样的,再加上第二步可得
将上式求递推式:f(n)+1 = 2{f(n-1)+1}
可以知道f(n)+1是等比数列,公比为2,首项为2,那么写出通项f(n)+1 = 2^n
f(n) = 2^n - 1

0
0
查看评论

海盗分钱问题

二。海盗分钱问题5个海盗抢得100枚金币后,讨论如何进行公正分配。他们商定的分配原则是:   (1)抽签确定各人的分配顺序号码(1,2,3,4,5);   (2)由抽到1号签的海盗提出分配方案,然后5人进行表决,如果方案得到超过半数的人同意,就按照他的方案进行分配,否则就将1号扔进大海喂鲨鱼;  (...
  • long2006sky
  • long2006sky
  • 2007-01-02 14:45
  • 1941

汉诺塔问题分析

汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 ...
  • tanlooger
  • tanlooger
  • 2016-01-01 19:00
  • 251

汉诺塔分析

虽然搞程序多年了,对递归算法还是有些打怵。递归本身好理解,但其各层嵌套却容易将人绕晕,递归的汉诺塔问题就将我搞晕了多次。我搜了好多资料,也查阅了好多书籍,但都是泛泛而谈,不够详细,下面是我精心总结一下汉诺塔问题。 汉诺塔的问题:(百度百科引用) 汉诺塔问题是源于印度一个古老传说的益智玩具...
  • tjusxh
  • tjusxh
  • 2013-09-18 08:47
  • 3727

算法学习-类似汉诺塔的问题

题目: 汉诺塔问题比较经典,这里修改一下游戏规则: 现在限制不能从最左侧的塔直接移动到最右 侧,也不能从最右侧直接移动到最左侧,而是必须经过中间。求当塔有 N 层的时候,打印 最优移动过程和最优移动总步数。 例如,当塔数为两层时,最上层的塔记为 1,最下层的塔记为 2,则打印:Move 1...
  • Luxia_24
  • Luxia_24
  • 2016-09-02 15:51
  • 673

汉诺塔问题以及时间复杂度

汉诺塔问题递归方法以及时间复杂度的分析
  • qq_33274645
  • qq_33274645
  • 2016-09-28 10:00
  • 3881

有关汉诺塔的算法问题——C++递归

汉诺塔递归问题
  • potato_uncle
  • potato_uncle
  • 2017-03-05 18:32
  • 560

c语言经典问题:汉诺塔 Hanoi问题

这个问题使用递归思想是比较靠谱的,如果
  • zyb050607
  • zyb050607
  • 2014-06-24 17:01
  • 2168

汉诺塔问题的递归和非递归算法

汉诺塔问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 如果考虑一下把64片金盘...
  • computerme
  • computerme
  • 2014-01-10 13:22
  • 8896

四根柱子处理汉诺塔问题的最少次数

经典的汉诺塔问题经常作为一个递归的经典例题存在。可能有人并不知道汉诺塔问题的典故。汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小顺序摞着64片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三...
  • qq_34576910
  • qq_34576910
  • 2016-12-11 19:35
  • 1031

经典数学问题之----海盗分宝

什么是海盗分宝问题呢?顾名思义,就是几个海盗探讨如何分赃的问题。在分赃的过程中,依靠智慧使自己所获得利益最大化。海盗分宝问题的描述虽然非常简单,然而,通过一个人对这个简单问题的分析与思考可以迅速的看出这个人的逻辑思维能力。同时,这个问题也曾经出现在微软应聘的试卷中。简单的描述与复杂的逻辑使它问题成为...
  • mengtnt
  • mengtnt
  • 2011-11-22 20:45
  • 2493
    个人资料
    • 访问:81650次
    • 积分:1832
    • 等级:
    • 排名:千里之外
    • 原创:99篇
    • 转载:4篇
    • 译文:0篇
    • 评论:6条
    最新评论