首页 > 编程学习 > 分钻石问题

分钻石问题

发布时间:2022/10/1 3:06:06

有五个人获得了100个相同的钻石,现在他们有一种分配方案。第一个人先提出一种分配方案,如果五个人有一半或以上的人同意,那么就这么分。如果同意的人小于一半,则第一个人没有钻石并退出,再由第二个人来提出分配方案,以此类推。每个人都采用最优决策(即能使自己获得最多钻石的决策)。

也就是说,假设现在由第 i i i个人提出分配方案 ( 1 ≤ i ≤ 5 ) (1\leq i\leq 5) (1i5),剩下的 6 − i 6-i 6i个人中同意该方案的人数为 a a a,则必须满足 a ≥ ⌈ 6 − i 2 ⌉ a\geq\lceil\frac{6-i}{2}\rceil a26i才能以这种方案分钻石,否则第 i i i个人退出,由第 i + 1 i+1 i+1个人继续提出方案。当然,到第五个人时,因为每个人都采用最优决策,所以第五个人肯定同意自己的方案,所以不会出现所有人都退出的情况。

现在,假如你是第一个人,你会提出什么方案,使自己获得最多的钻石呢?最多能获得的钻石又是多少个呢?

平均分,二十个?不对。再少些?也不对。正确答案:98个。

为什么呢?让我来细细讲解:

正着推显然比较麻烦,我们倒着推,从第五个人开始。

(为了方便,第一个人叫小A,第二个人叫小B,以此类推)

显然, i = 5 i=5 i=5时,只有小E能拿100个。

小A小B小C小D小E
个数0000100

i = 4 i=4 i=4时,小D拿了100个,小E当然不同意,因为如果小D退出,100个钻石都是小E的了。但如果小D同意,则同意数量大于等于一半。所以 i = 4 i=4 i=4时,只有小D能拿100个。

小A小B小C小D小E
个数0001000

i = 3 i=3 i=3时,小C也想拿100个。但这样会遭到小D的反对,也可能遭到小E的反对,所以小C要给小E一个。小E当然同意,因为如果不同意,小D也不同意,小C退出后,小E一个也拿不到。

小A小B小C小D小E
个数009901

i = 2 i=2 i=2时,小B只要给小D一个,就能得到小D的同意,因为如果小D不同意,小C和小E肯定不同意(一个也没有),小B退出后,变成 i = 3 i=3 i=3的情况,小D一个也没有,所以小D只能同意。

小A小B小C小D小E
个数098010

i = 1 i=1 i=1时,到你了。显然,只要让小C和小E拿到的比 i = 2 i=2 i=2时的多就行了。给小C和小E每人一个,获得他们的同意,你就能拿到98个。

小A小B小C小D小E
个数980101

是不是听起来很不可思议?但事实就是如此。

Copyright © 2010-2022 mfbz.cn 版权所有 |关于我们| 联系方式|豫ICP备15888888号