下面是三道与博弈论相关的题目及其做法。
题目1:皮肤病
题面
(改编自《不可思议事件簿 第5册 魔法学院》,由艾教提供变体)
(原题名称:加试难题)
在一个学校内,共有 $100$ 个人,每个人都养了一只狗。
但由于某些原因,校长确定了这 $100$ 条狗内,必然存在至少一条狗有皮肤病。
现在那些学生要确定一下哪些狗有皮肤病。
他们准备这样确定:
- 每天上午的时候,所有人看一下除了自己的狗之外的所有狗。
- 如果确认自己的狗病了,就在晚上敲一下宠物房内的钟。
现在已知:
- 无论谁,看那只狗,都能立刻确认它是否有皮肤病。
- 假设皮肤病不会对狗的寿命造成影响,即所有的狗都不会死亡。
- 皮肤病不能传染,并且忽略“人患病”造成的影响。
- 所有人都绝顶聪明(废话
并且:
- 第 $1$ 天晚上,没有钟声响起。
- 第 $2$ 天晚上,没有钟声响起。
- 第 $3$ 天晚上,没有钟声响起。
- …
- 直到第 $10$ 天晚上,终于有钟声响起了。
请问:
- 那天晚上,共有多少人共同敲响了钟?
- 在第 $10$ 天后,除了那些敲钟的人养的狗,是否会存在其他病了的狗?
答案
- $10$ 个人
- 不会
题解
我们考虑一下,如果说第 $1$ 天晚上有人敲钟,那么代表啥。
我们从人的角度考虑,如果说一个人发现其他狗都是好狗(指没有皮肤病的狗),那么必然自己的狗有皮肤病 (除了自己的,还有谁的?难不成是他自己?)。
这种情况下,他便会去敲钟。
但第 $1$ 天晚上没有钟声,所以每个人都观察到了至少 $1$ 个病狗,也就是说至少有 $2$ 个病狗。
随后第 $2$ 天,如果说一个人观察到其他的狗内,只有 $1$ 个病狗,那么显然自己的狗也得有皮肤病。
所以这种情况下,他也会去敲钟。
并且显然会有 $2$ 个人去敲钟。
以此类推。
可以发现,根据上面两天的模拟情况,有多少个病狗,就会在第几天敲钟,并且敲钟的都是那些养了病狗的,没养病狗的不会敲钟(实际上是废话
所以就可以得到本题答案。
题目2:抓豆子
题面
(本题面基于艾教讲述的题面进行修改)
有 $10$ 个人在进行一场抓豆子游戏。
游戏规则是这样的,$10$ 个人按照环的顺序依次取豆子(即取的顺序是 $1,2,3,\dots,10,1,2,3,\dots,10,\dots$),初始袋子里面共有 $100$ 颗豆子。
每个人都要取至少 $1$ 个豆子,如果袋子为空,则游戏结束。
显然这个游戏会在有限局内结束。
结束之后,我们看每个人一共取了多少个豆子,随后取的豆子最多的和最少的所有人都会被淘汰。
但那些人显然不想让自己被淘汰,并且他们不存在“我不想让某个其他人被淘汰,即使付出自己被淘汰的代价”的情况。
现在问你:
- 在所有人都绝顶聪明的时候,哪些人被淘汰了。
注意,淘汰完该淘汰的人后,游戏就彻底结束了,不会继续下一轮游戏。
答案
- 所有人都会被淘汰。
题解
我们从第 $1$ 个人的角度考虑。
显然在第 $1$ 个人取完豆子后,第 $2$ 个人便会知道第 $1$ 个人取了多少豆子。
分两种情况:
- 第 $1$ 个人直接取完了所有豆子。
- 第 $1$ 个人没有取完。
显然第一种情况是直接全部淘汰。
但第二种情况呢?我们再考虑第 $2$ 个人。
可以发现,只要第 $1$ 个人和第 $2$ 个人取的豆子之间有一点的空隙(即差至少为 $2$),那么第 $3$ 个人就有机会不淘汰,不符合题目条件。
所以显然第 $2$ 个人和第 $1$ 个人取的豆子数量的差不会超过 $1$。
再看第 $3$ 个人,显然第 $3$ 个人取的豆子只能是第 $1$ 或者第 $2$ 个人取的豆子数量。
因为只要是其他数量,那么第 $1$ 或者第 $2$ 个人中,必然会有一个人活。
当然,如果说前两个人取一样的豆子个数,那么第 $3$ 个人还可以取到最多差为 $1$。
以此类推,可以发现,最后谁都会被淘汰。
题目3:分金币
题面
(本题面基于艾教讲述的题面进行修改)
有 $10$ 个海盗,他们都是贪婪、自私但聪明的。
现在他们要分偷来的 $100$ 个金币。
他们准备采用投票的方式。
具体而言,我们把十个人分别命名为:老大、老二、老三、老四、老五、老六、老七、老八、老九、老十。
随后,先老大提供一种分硬币的方式。
然后包括老大在内的共 $10$ 个人做投票。
只要投支持票的人达到了总人数的一半(上取整)及以上,那么就采用老大的方式分配,否则把老大淘汰,然后老二说一个分配方案。
当然,他们也接受贿赂,贿赂是这样的:
- 假设 $a$ 要贿赂 $b$,那么就在 $a$ 说分配方案的时候,给 $b$ 至少一个金币(当然,显然给一个金币最好),此时 $b$ 便会考虑投支持票,也就是说 $b$ 可能会反水。
现在问你:
- 在所有人都绝顶聪明的时候,每个人分别获得多少金币。
为了防止答案多解,那么我们假设每个人都想早点得到自己最优的金币。
答案
- 老大分得 $96$ 个金币,老三、五、七、九各分得 $1$ 金币,其他人一无所得。
题解
(以下题解会采用半对话半陈述的形式)
老十:只要我把老大到老九淘汰,我就能独占所有金币了。/tx
老九:你没机会了——只要轮到我,我就让我独占所有,并且无论如何都不可能拒绝我的分配方案。/cf
老八:不行,只要我被淘汰,那么老九就会独占所有金币,所以我就把老十贿赂一下,让他投我的票,我就能得到 $99$ 个金币了,不戳。/yx
这里解释一下为啥老八贿赂的是老十而不是老九。
是因为只要贿赂老九,那么老九就会反水,然后自己独占所有金币。
而如果贿赂老十,那么老十就会想,如果我反水,那么就会轮到老九,此时我会一分不得。
所以我还不如投支持票,我还能得到一个金币。
老七:@老八 你没机会了,我贿赂一下老九,这样我就能得到 $99$ 个金币。/kx
这里也解释一下为啥贿赂老九会更优。
首先贿赂老八那么老八就一定会反水。
其次考虑贿赂老十,这时候如果老十反水,那么会轮到老八,老八也会给我一个金币,那么不如早得。
以此类推,直到老大,此时老大需要贿赂老三、五、七、九,自己获得 $96$ 个金币,此时就是最优的方案了。