强盗分金币--博弈论的经典题目
5个强盗(A,B,C,D,E)分100个金币。他们设定了一个规则:从A开始给出分金币的提议,然后其余的强盗投赞同或反对票,如果反对票数大于或等于赞同票数,A就被杀掉,否则就按此提议分金币;如果A被杀了,接着就轮到B提议,然后同样按上述规则继续下去。假设每一个强盗都是绝顶聪明的,而且他们的所有行为(提议与投票)都是对自己最有利的(即能够在保命的前提下得最多的钱)。请问这100个金币是怎么分的? 每个人各拿多少? a拿1个。E拿99个 [quote]原帖由 [i]mrt8544[/i] 于 2008-7-25 17:24 发表 [url=http://www.crazyprogrammer.org/redirect.php?goto=findpost&pid=909&ptid=186][img]http://www.crazyprogrammer.org/images/common/back.gif[/img][/url]
a拿1个。E拿99个 [/quote]
错 98块金子归自己,1块金子给C,1块金子给E 哦,这个啊,以前用C#写出过这样的一个算法程序哦
找道到了,在附件里
有兴趣的同学可以下载了一起研究研究
[[i] 本帖最后由 tlzjff 于 2008-8-29 16:31 编辑 [/i]] A分一个 B C D分33个。
如果是让A死了 B就一无所有 必须给C D一人分50个才能令C D赞同 所以B会同意。 如果B也死了 那100个就都是E的了。因为E是最后一个,不管怎么分 他都会举反对的。
[[i] 本帖最后由 wxjbadboy 于 2008-8-29 16:23 编辑 [/i]] 忽略了一点。。。
如果B在A分金币的时候不管怎么分都举反对 E肯定举反对 那么A是必死的 这时该B分 把100个都给自己 如果C D不同意 那么在B死后 C D就会都死 C和D为了保命 会举赞同 不知道这样是不是对的
这个协议是根本达不成的 因为海盗都是绝顶聪明的 A不可能让自己白白送命
[[i] 本帖最后由 wxjbadboy 于 2008-8-29 16:42 编辑 [/i]] 主要还是逆向思维的问题
假设ABC都被杀了,到D分金币,不管D怎么分,E都不同意,最终D都会死,所以D为了活命,绝对不会在C提议的时候投反对票。
由于这样,如果AB被杀的话,C不管怎么提议,D赞同,E反对,赞同=反对,所以C也也要死,同样为了活命,B不管怎么提议他都要赞同。
由上可得,在A被杀的情况下,B提议,B得100,C得0,D得0,E得0,C和D为了活命也必须赞同。所以当如果A死了,C和D和E最终都分不到金币。
所以,A只要提出,A得97,B得0,C得1,D得1,E得1的方案,就可以得到3票赞同。 综合以上各楼的观点:
E始终反对;
D始终同意;
C始终反对(因为假设A和B都死了,对他最有利);
B始终同意(因为A死了B也必死);
得出的结论是:这个聪明绝顶的分配方式一定是A提出来的^_^
A:100(同意)
B:0(同意)
C:0(反对)
D:0(同意)
E:0(反对) 同意8楼的 我没想到这种情况 8L 正解 ~!
我的解法
我个人认为8L的解法不对。如果最后只剩下DE两个人的时候,这时候由D确定分配策略,由于是D分配金子,所以他肯定会投自己的赞成票,那么不管E是赞成还是反对,D都不会死,
所以D就索性不给E金子(反正E也没用),将100个金子都给自己。
向前退
在CDE三人的时候,前面已经提到如果C死亡,那么D可以得到100个金子,所以不管怎么分,D都会投反对票(即使C给D100金子也是属于临界问题),所以C就索性不给D金子(反正D总是投反对票),那么现在C赞成,D反对,C不想自己死亡,所以要争取E的那张票。刚才说到如果C死亡,D是一个金子都不会给E的,所以C只要给E1个金子,那么E就会投赞成票的。
所以分配法则应该是C99 D0 E1
继续向前推
在BCDE四人的时候,B要争取到另外一个人的赞成票(因为他自己肯定是赞成的),显然根据上面的结果,争取D的赞成票是最容易的,只需要给D一个金子(因为如果B死亡了,D一个金子都得不到,所以他肯定投赞成票),故最后的方案是 B99 C0 D1 E0
继续向前推,到头了,呵呵。
在ABCDE五人的时候,A要争取到另外两个人的赞成票,故给C1个,给E1个。
最后的分法为A98 B0 C1 D0 E1
综上所述,A会都到98个金子, C会得到1个金子, E会得到1个金子。
答题完毕。
[[i] 本帖最后由 77604644 于 2008-9-8 23:03 编辑 [/i]] A 说:“哥几个平均分得了,免得提心吊胆的!又伤兄弟们感情!”
其余四个齐声说:“顶!!!"
完了!@ 哈哈,这个做过。逆推法! 看一下程序啊 同意8楼的说法,。佩服、 规则:其余的强盗投赞同或反对票,如果反对票数大于或等于赞同票数,A就被杀掉。此题有一点不清楚,即海盗在保证自己不死、又能得到同样多金币的前提下是否会看到同伴死。根据”海盗“的一贯做法,我认为应该倾向于愿意看到同伴死。
如只剩2人,则D必死,因为E只要反对就可以杀他且拿到金币。
如只剩3人,D永远同意(否则必死,可其实他同意也是死),但E只要否定,则否定票数等于赞同票,就可以杀C、然后杀D且拿到所有金币。所以C也必死。
如果只剩4人,由于C必死,所以C永远支持,而D也是必死所以也永远支持,故B给自己100,其他人都为0,一样可以得到CD支持,从而得到金币。
最后是5人情况,由于不可能给B100以上的金币,所以B永远反对,而如果让B分的话,CDE都将无法得到金币,所以只要给CDE各一个即可。
现在回来看前提,如果隐藏条件”希望看到同伴死“不成立的话,那A只要给100 0 0 0 0,由于CDE知道自己永远无法得到金币,干脆支持算了,也可以通过。
[[i] 本帖最后由 Hamberg 于 2008-12-8 15:42 编辑 [/i]]
页:
[1]