本文主要是介绍智力题_海盗咋得到最多钻石?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
也是CSDN上看到的一个题:
智力比拼_海盗怎么得到最多的钻石?
有五个海盗,在海上抢来了一百颗钻石,每一颗都价值连城。五个海盗都很贪婪,他们都希望自己能分得最多的钻石,但同时又都很明智。于是他们按照抽签 的方法,排出一个次序。首先由抽到一号签的海盗说出一套分钻石的方案,如果5个人中有50%以上(这里有含50%和不含50%两种情况)的人同意,那么便依照这个方案执行,否则的 话,这个提出方案的人将被扔到海里喂鱼,接下来再由抽到二号签的海盗继续说出一套方案,然后依次类推到第五个。前提是五个海盗都很聪明。
游戏规则就是这样残酷,现在问题出来了:
如果你是抽到一号签的海盗,你计划提出一套什么样的方案,在保住小命的前提下,分得最多的钻石?
本人得出的答案在下面,可能不对,希望知道答案的多多指点。
采用逆推的方向
含50%的情况:
5号分配时:100
4号分配时:100,0
3号分配时:99,0,1
2号分配时:99,0,1,0
1号分配时:98,0,1,0,1
不含50%的情况:
5号分配时: 100
4号分配时: 0, 100 (这时5号有可能否决,4号有可能保不了命)
3号分配时: 100 ,0,0 (4号为保命,会同意的)
2号分配时: 98,0,1,1
1号分配时: 97,0,1,2,0 或者 97,0,1,0,2(两个分配方案都可)
这篇关于智力题_海盗咋得到最多钻石?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!