下面是三道与博弈论相关的题目及其做法。

题目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$ 个金币,此时就是最优的方案了。