<1> 分析博弈: 小红是个游戏迷,他和小蓝一起玩拿石子游戏。游戏规则为2个人轮流拿石子。一次可以拿1颗或3颗,规定谁取到最后一颗石子谁就胜出。最后决定由小红先取。两人都是游戏高手,该赢的绝不会输(表示不会失误)。问在知道石子总数的情况下,怎样快速预测谁将会胜出。
取石子分为3种情况:
①: (1, 1) 共取走2个石子
②: (1, 3) 共取走4个石子
③: (3, 1) 共取走4个石子
④: (3, 3) 共取走6个石子
则最后会剩下0, 1, 3三种情况的石子
设①共进行N1次, ②进行N2次, ③进行N3次, ④进行N4次 ,最后剩下的为K个
则总数 S = (1 + 1)*N1 + (1 + 3)*N2 + (3 + 1)*N3 + (3 + 3)*N4 + K
= 2*N1 + 4*N2 + 4*N3 + 6*N4 + K
= 2 * (N1 + 2*N2 + 2*N3 + 3*N3) + K
因为 2 * (N1 + 2*N2 + 2*N3 + 3*N3) 为偶数, 所以剩下 K 个的时候, 又该第一个人取了
当 K = 1 或者 3 时, 必胜;
当 K = 0 时, 必败;
可以写成:
K 为偶数时, 必败;
反之, 必胜;
又因为 S 的奇偶性取决于 K 的奇偶性, 所以 K 的奇偶性关系到整个游戏的成败
所以直接判断 S 奇偶就可以了
①: S 为奇数, 则 K 为1或3, 必胜
②: S 为偶数, 则 K 为0, 必败
<2> 威佐夫博弈: 两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,
多者不限,最后取光者得胜。
我们用(ak,bk)(ak ≤ bk ,k=0,1,2,……,n)表示两堆物品的数量并称其为局势,如果甲
面对(0,0),那么甲已经输了,这种局势我们称为奇异局势:
(0,0)、(1,2)、(3,5)、(4,7)、(6,10)、(8,13)、(9,15)、(11,18)、(12,20)..
可以看出,a0 = b0 = 0,ak是未在前面出现过的最小自然数,而 bk = ak + k,奇异局势有如下三条性质:
性质1: 任何自然数都包含在一个且仅有一个的奇异局势中
证:
因为ak 为未在前面出现过的最小自然数,那么ak > ak-1, 所以bk = ak + k > [ak-1 + (k - 1)] == bk-1
所以性质1成立
性质2: 任意操作都可以把奇异局势变为非奇异局势
若只修改(ak, bk)其中一个分量,则另一个分量不可能是另一个奇异局势的分量,必为非奇异局势
若把两个都减去同一个值,则两个分量的差值没有变,故必为非奇异局势
性质3: 进行适当的操作, 就可以将非奇异局势变为奇异局势
假设当前局势是(a, b)
If (a == b) 同时取走 a 个物品, 局势变为(0, 0)
If (a == ak && b > bk) 取走b - bk个物品, 局势变为(ak, bk)
If (a == ak && b < bk) 未完成
If (a > ak && b == ak + k) 取走a - ak个物品, 局势变为(ak, bk)
If(a < ak && b == ak + k) 未完成
If(a == aj (j < k)) 取走b - bj个物品, 局势变为(aj, bj)
If(a == bj (j < k)) 取走b - aj个物品, 局势变为(aj, bj)
故从上面的3个性质得到, 奇异局势可以变为非奇异局势, 非奇异局势可以变为奇异局势;
所以面对奇异局势, 先手必败, 反之必胜
判断奇异局势:
假如局势是(a, b), 有如下公式
黄金分割数
|
|
ak = [k * (1 + √5) / 2] (方括号表示取整)
bk = ak + k
注:k 为 a 与 b 的差值
若满足上述条件, 则为奇异局势, 即先手必败
<3> 斐波那契博弈:
未完成
Nim:
证:
A1 ^ A2 ^ A3 ^… ^ AN = j
At ^ j < At && At ^ j < j
取石子使At => At ^ j
原式 = j ^ j = 0
阶梯Nim游戏:
有n个位置1…n, 每个位置上有ai个石子. 有两个人轮流操作。操作步骤是:
挑选1…n中任一一个存在石子的位置i, 将至少1个石子移动至i−1位置(也就是最
后所有石子都 堆在在0这个位置), 谁不能操作谁输。
求先手必胜还是必败。
只看奇数位的石子堆, 进行Nim游戏, 也就是计算奇数位石子数量的异或和若某个人想要破环造成
的Nim局势, 将偶数位的石子移到了奇数位, 那么另一个人就可以将移到i位置的石子移到i-1,
Nim局势仍然没变, 故只用看奇数位的Nim异或和即可了
后续点:是指按题目要求的走法可以一步达到的那一个点