设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1952|回复: 4
打印 上一主题 下一主题

[转帖]微软程序员测试题之海盗分宝石问题

[复制链接]
跳转到指定楼层
1#
发表于 2005-10-26 06:53:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                                



[题目]

五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分:

抽签决定自己的号码(1、2、3、4、5)

首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼。

如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼,依此类推。

条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。

问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?







答案(转载):

[hide]

数学的逻辑有时会导致看来十分怪异的结论。一般的规则是,如果逻辑推理没有漏洞,

那么结论就必定站得住脚,即使它与你的直觉矛盾。 1998年9月,加利福尼亚州帕洛阿

尔托的Stephen M. Omohundro寄给我一道难题,它恰好就属于这一类。这难题已经流传

了至少十年,但是Omohundro对它作了改动,使它的逻辑问题变得分外复杂了。

先来看看此难题原先的形状。10名海盗抢得了窖藏的100块金子,并打算瓜分这些战利

品。这是一些讲民主的海盗(当然是他们自己特有的民主),他们的习惯是按下面的方

式进行分配:最厉害的一名海盗提出分配方案,然后所有的海盗(包括提出方案者本

人)就此方案进行表决。如果50%或更多的海盗赞同此方案,此方案就获得通过并据此

分配战利品。否则提出方案的海盗将被扔到海里,然后下提名最厉害的海盗又重复上述

过程。

所有的海盗都乐于看到他们的一位同伙被扔进海里,不过,如果让他们选择的话,他们

还是宁可得一笔现金。他们当然也不愿意自己被扔到海里。所有的海盗都是有理性的,

而且知道其他的海盗也是有理性的。此外,没有两名海盗是同等厉害的——这些海盗按

照完全由上到下的等级排好了座次,并且每个人都清楚自己和其他所有人的等级。这些

金块不能再分,也不允许几名海盗共有金块,因为任何海盗都不相信他的同伙会遵守关

于共享金块的安排。这是一伙每人都只为自己打算的海盗。

最凶的一名海盗应当提出什么样的分配方案才能使他获得最多的金子呢?

为方便起见,我们按照这些海盗的怯懦程度来给他们编号。最怯懦的海盗为1号海盗,

次怯懦的海盗为2号海盗,如此类推。这样最厉害的海盗就应当得到最大的编号,而方

案的提出就将倒过来从上至下地进行。

分析所有这类策略游戏的奥妙就在于应当从结尾出发倒推回去。游戏结束时,你容易知

道何种决策有利而何种决策不利。确定了这一点后,你就可以把它用到倒数第2次决策

上,如此类推。如果从游戏的开头出发进行分析,那是走不了多远的。其原因在于,所

有的战略决策都是要确定:"如果我这样做,那么下一个人会怎样做?" 因此在你以

下海盗所做的决定对你来说是重要的,而在你之前的海盗所做的决定并不重要,因为你

反正对这些决定也无能为力了。

记住了这一点,就可以知道我们的出发点应当是游戏进行到只剩两名海盗——即1号和2

号——的时候。这时最厉害的海盗是2号,而他的最佳分配方案是一目了然的:100块金

子全归他一人所有,1号海盗什么也得不到。由于他自己肯定为这个方案投赞成票,这

样就占了总数的50%,因此方案获得通过。

现在加上3号海盗。1号海盗知道,如果3号的方案被否决,那么最后将只剩2个海盗,而

1号将肯定一无所获——此外,3号也明白1号了解这一形势。因此,只要3号的分配方案

给1号一点甜头使他不至于空手而归,那么不论3号提出什么样的分配方案,1号都将投

赞成票。因此3号需要分出尽可能少的一点金子来贿赂1号海盗,这样就有了下面的分配

方案: 3号海盗分得99块金子,2号海盗一无所获,1号海盗得1块金子。

4号海盗的策略也差不多。他需要有50%的支持票,因此同3号一样也需再找一人做同

党。他可以给同党的最低贿赂是1块金子,而他可以用这块金子来收买2号海盗。因为如

果4号被否决而3号得以通过,则2号将一文不名。因此,4号的分配方案应是:99块金子

归自己,3号一块也得不到,2号得1块金子,1号也是一块也得不到。

5号海盗的策略稍有不同。他需要收买另两名海盗,因此至少得用2块金子来贿赂,才能

使自己的方案得到采纳。他的分配方案应该是:98块金子归自己,1块金子给3号,1块

金子给1号。

这一分析过程可以照着上述思路继续进行下去。每个分配方案都是唯一确定的,它可以

使提出该方案的海盗获得尽可能多的金子,同时又保证该方案肯定能通过。照这一模式

进行下去,10号海盗提出的方案将是96块金子归他所有,其他编号为偶数的海盗各得1

块金子,而编号为奇数的海盗则什么也得不到。这就解决了10名海盗的分配难题。

Omohundro的贡献是他把这一问题扩大到有500名海盗的情形,即500名海盗瓜分100块金

子。显然,类似的规律依然成立——至
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-10-26 07:49:00 | 只看该作者
答案(转载):

数学的逻辑有时会导致看来十分怪异的结论。一般的规则是,如果逻辑推理没有漏洞,

那么结论就必定站得住脚,即使它与你的直觉矛盾。 1998年9月,加利福尼亚州帕洛阿

尔托的Stephen M. Omohundro寄给我一道难题,它恰好就属于这一类。这难题已经流传

了至少十年,但是Omohundro对它作了改动,使它的逻辑问题变得分外复杂了。

先来看看此难题原先的形状。10名海盗抢得了窖藏的100块金子,并打算瓜分这些战利

品。这是一些讲民主的海盗(当然是他们自己特有的民主),他们的习惯是按下面的方

式进行分配:最厉害的一名海盗提出分配方案,然后所有的海盗(包括提出方案者本

人)就此方案进行表决。如果50%或更多的海盗赞同此方案,此方案就获得通过并据此

分配战利品。否则提出方案的海盗将被扔到海里,然后下提名最厉害的海盗又重复上述

过程。

所有的海盗都乐于看到他们的一位同伙被扔进海里,不过,如果让他们选择的话,他们

还是宁可得一笔现金。他们当然也不愿意自己被扔到海里。所有的海盗都是有理性的,

而且知道其他的海盗也是有理性的。此外,没有两名海盗是同等厉害的——这些海盗按

照完全由上到下的等级排好了座次,并且每个人都清楚自己和其他所有人的等级。这些

金块不能再分,也不允许几名海盗共有金块,因为任何海盗都不相信他的同伙会遵守关

于共享金块的安排。这是一伙每人都只为自己打算的海盗。

最凶的一名海盗应当提出什么样的分配方案才能使他获得最多的金子呢?

为方便起见,我们按照这些海盗的怯懦程度来给他们编号。最怯懦的海盗为1号海盗,

次怯懦的海盗为2号海盗,如此类推。这样最厉害的海盗就应当得到最大的编号,而方

案的提出就将倒过来从上至下地进行。

分析所有这类策略游戏的奥妙就在于应当从结尾出发倒推回去。游戏结束时,你容易知

道何种决策有利而何种决策不利。确定了这一点后,你就可以把它用到倒数第2次决策

上,如此类推。如果从游戏的开头出发进行分析,那是走不了多远的。其原因在于,所

有的战略决策都是要确定:"如果我这样做,那么下一个人会怎样做?" 因此在你以

下海盗所做的决定对你来说是重要的,而在你之前的海盗所做的决定并不重要,因为你

反正对这些决定也无能为力了。

记住了这一点,就可以知道我们的出发点应当是游戏进行到只剩两名海盗——即1号和2

号——的时候。这时最厉害的海盗是2号,而他的最佳分配方案是一目了然的:100块金

子全归他一人所有,1号海盗什么也得不到。由于他自己肯定为这个方案投赞成票,这

样就占了总数的50%,因此方案获得通过。

现在加上3号海盗。1号海盗知道,如果3号的方案被否决,那么最后将只剩2个海盗,而

1号将肯定一无所获——此外,3号也明白1号了解这一形势。因此,只要3号的分配方案

给1号一点甜头使他不至于空手而归,那么不论3号提出什么样的分配方案,1号都将投

赞成票。因此3号需要分出尽可能少的一点金子来贿赂1号海盗,这样就有了下面的分配

方案: 3号海盗分得99块金子,2号海盗一无所获,1号海盗得1块金子。

4号海盗的策略也差不多。他需要有50%的支持票,因此同3号一样也需再找一人做同

党。他可以给同党的最低贿赂是1块金子,而他可以用这块金子来收买2号海盗。因为如

果4号被否决而3号得以通过,则2号将一文不名。因此,4号的分配方案应是:99块金子

归自己,3号一块也得不到,2号得1块金子,1号也是一块也得不到。

5号海盗的策略稍有不同。他需要收买另两名海盗,因此至少得用2块金子来贿赂,才能

使自己的方案得到采纳。他的分配方案应该是:98块金子归自己,1块金子给3号,1块

金子给1号。

这一分析过程可以照着上述思路继续进行下去。每个分配方案都是唯一确定的,它可以

使提出该方案的海盗获得尽可能多的金子,同时又保证该方案肯定能通过。照这一模式

进行下去,10号海盗提出的方案将是96块金子归他所有,其他编号为偶数的海盗各得1

块金子,而编号为奇数的海盗则什么也得不到。这就解决了10名海盗的分配难题。

Omohundro的贡献是他把这一问题扩大到有500名海盗的情形,即500名海盗瓜分100块金

子。显然,类似的规律依然成立——至少是在一定范围内成立。事实上,前面所述的规

律直到第200号海盗都成立。 200号海盗的方案将是:从1到199号的所有奇数号的海盗

都将一无所获,而从2到198号的所有偶数号海盗将各得1块金子,剩下的1块金子归200

号海盗自己所有。

乍看起来,这一论证方法到200号之后将不再适用了,因为201号拿不出更多的金子来收

买其他海盗。但是即使分不到金子,201号至少还希望自己不会被扔进海里,因此他可

以这样分配:给1到199号的所有奇数号海盗每人1块金子,自己一块也不要。

202号海盗同样别无选择,只能一块金子都不要了——他必须把这100块金子全部用来收

买100名海盗,而且这100名海盗还必须是那些按照201号方案将一无所获的人。由于这

样的海盗有101名,因此202号的方案将不再是唯一的——贿赂方案有101种。

203号海盗必须获
3#
发表于 2005-10-26 21:42:00 | 只看该作者
~~~~~~~~~[em03]
4#
发表于 2005-10-27 00:41:00 | 只看该作者
see
5#
发表于 2005-11-6 18:08:00 | 只看该作者
kk
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-16 13:36 , Processed in 0.071959 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表