博弈论小记

首先是经典的Nim游戏:

  结论:先手必胜当且仅当石子数异或不为0

     先手必败当且仅当石子数异或为 0

  证明:考虑特殊情况,首先当所有石子数

为0时显然先手必败。

  考虑设所有石子数异或为x,设x最高位1为

k,那么至少存在一堆石子数包含第k位,根据异

或运算的消去律,使等式两侧同时异或x,右侧

为0,而由于a ^ x < a因此一定存在这种操作,

而后手对于异或为0的局面进行操作一定无法维

持这种局面,那么最终结果即为所有石子数为0

先手必胜

Nim游戏变形一:K-Nim游戏:

  游戏规则改为每次可以对若干堆石子同时

进行操作,每次操作可以取1~x堆石子

  结论:先手必胜当且仅当石子数%(x + 1)不为0

     先手必败当且仅当石子数%(x + 1) 为0

  证明:同样的思维方式,考虑每次可以取x

堆石子,那么不妨假设两人的操作对象相同(即

两人在同一范围内进行博弈),考虑无论A的决

策是多少,B一定存在一种决策使得A,B两人取

石子总数为x +1,因此对于一堆成立,考虑先手

必败后先后手不变,先手必胜后先后手改变,设

先手必胜为1,先手必败为0,那么结论显然

  例题:SDOI2011黑白棋

Nim游戏变形二:反Nim游戏:

  游戏规则改为不能取石子的人获胜

  结论:先手必胜:1:存在偶数堆石子且石子数为1 

          2:至少存在一堆石子数大于1且石子数异或不为0

     先手必败:反之

  证明:条件一显然

     条件二考虑:

  若存在一堆石子数大于1,假设剩余奇数堆

石子数为1,那么显然可以将石子数大于1全部

取走(将先手必败局面给对方),若存在偶数

堆石子,仍然可以将石子数大于1取剩1个石子

同理

  考虑若存在至少两堆石子数大于1,首先若

异或为0,那么只有两种决策:1:取走任意石子

转化为异或不为0 2:取走一堆大于1的石子(

先手必胜),若异或不为0,那么一定存在一种

决策转化为上一种局面,得证

  证明思路很值得学习

Nim游戏变形三:阶梯博弈

  游戏规则改为:若干阶梯上有若干石子,

每次选择任意阶梯将任意石子移动到下一层

不能操作者获胜

  结论:先手必胜当且仅当奇数阶梯石子数异或不为0

     先手必败当且仅当奇数阶梯石子数异或 为0

  证明:巧妙地转化

  首先考虑奇数阶梯的结论显然,若对手操

作偶数阶梯,那么我方操作为将等量石子移动

到下一层阶梯,相当于偶数阶梯石子移动到另

一偶数阶梯,得证

  (选择奇数阶梯的原因为0为偶数)

很多问题种并没有明显的“石子”,一种常用套路

为将距离,时间等转化为石子

  例题:SDOI2019移动金币

posted @ 2021-12-18 18:36  HZOI_LYM  阅读(111)  评论(0编辑  收藏  举报