博弈论常见模型总结

取石子游戏模型集合

平等组合游戏

  • 两人游戏。

  • 两人轮流走步。

  • 有一个状态集,而且通常是有限的。

  • 有一个终止状态,到达终止状态后游戏结束。

  • 游戏可以在有限的步数内结束。

  • 规定好了哪些状态转移是合法的。

  • 所有规定对于两人是一样的。

N状态(必胜状态),P状态(必败状态)
那么我们定义两个状态之间的转换:

所有的终止状态都为P状态

  • 对于任意的N状态,存在至少一条路径可以转移到P状态

  • 对于任意的P状态,只能转移到N状态


取石子游戏一

有两个游戏者, A A A B B B,有 n n n颗石子,约定:两人轮流取走石子,内次可以取 1 , 2 或 3 1,2或3 1,23颗, A A A先取,取走最后一颗石子的人获胜

0 , 4 , 8 , 12... 0,4,8,12... 0,4,8,12...等状态就是对于先手的 P P P状态,其他则是对于先手的 N N N状态

将这个问题换成每次只能取走 1 1 1~ m m m个石子,如果 n n%(m+1)=0 n,则是先手必败状态,否则是先手必胜状态这就是巴什博弈

若是走到最后失败的游戏,则是 A n t i   N i m Anti\space Nim Anti Nim


取石子游戏二

拓展一下一,定义一个集合 S = { p 1 , p 2 . . . , p k } ( k ∈ Z ∗ ) S=\{p_1,p_2...,p_k\}(k\in Z^{*}) S={p1,p2...,pk}(kZ) A , B A,B A,B在游戏的时候取走的石子数必须是集合里的数,其他条件不变

考虑 N N N状态,引入一个新的东西 − > -> > S G SG SG函数,定义如下:
f ( v ) = m e x { f ( u ) ∥ u 为 v 的 后 继 状 态 } f(v)=mex\{f(u)\|u为v的后继状态\} f(v)=mex{f(u)uv}
其中, m e x mex mex是第一在整数集合上的操作,它的自变量是任意整数集合,函数值是不属于该集合的最小自然数
m e x ( A ) = m i n { k ∥ ∁ N A } mex(A)=min\{k\|∁_N A\} mex(A)=min{kNA}
终止状态的 S G SG SG值显然为 0 0 0,并且 S G SG SG 0 0 0的状态就是 P P P状态,否则为 N N N状态, S G SG SG值为 0 0 0的状态,说明它的所有后继状态都不为 0 0 0,也就是它只能转移到非 0 0 0状态,而 S G SG SG值不为 0 0 0的状态则不一样,那么 S G SG SG值为 0 0 0的状态就是必败态的定义, S G SG SG值不为 0 0 0的状态就是必胜态的定义,所以我们只需要用集合 S S S求出每个状态的 S G SG SG值即可


取石子游戏三

n n n个石子, A , B A,B A,B 两人轮流取石子,规定他们每次至多只能取走当前石子总数 ⌈ s 2 ⌉ ⌈\frac{s}{2}⌉ 2s个石子,问 A A A先手是否有必胜策略
S G ( 0 ) = 0 , S G ( 1 ) = 1 , S G ( 2 ) = 0 S G ( 3 ) = m e x { S G ( 3 − 1 ) , S G ( 3 − 2 ) } = 2 S G ( 4 ) = m e x { S G ( 4 − 1 ) , S G ( 4 − 2 ) } = 1 SG(0)=0,SG(1)=1,SG(2)=0\\SG(3)=mex\{SG(3-1),SG(3-2)\}=2\\SG(4)=mex\{SG(4-1),SG(4-2)\}=1 SG(0)=0,SG(1)=1,SG(2)=0SG(3)=mex{SG(31),SG(32)}=2SG(4)=mex{SG(41),SG(42)}=1
打下表 : : :
S G ( 1 − > . . . ) : 0 , 1                        0 , 2 , 1 , 3                 0 , 4 , 2 , 5 , 1 , 6 , 3 , 7 0 , 8 , 4 , 9 , 2 , 10...   SG(1->...):\\ 0,1\space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \\ 0,2,1,3\space \space \space \space \space \space \space \space \space \space \space \space \space \space \space \\ 0,4,2,5,1,6,3,7\\ 0,8,4,9,2,10...\space SG(1>...):0,1                      0,2,1,3               0,4,2,5,1,6,3,70,8,4,9,2,10... 
找到规律,数列在间隔递增,上一行的数间隔着插在下一行的数的中间,先手必败当且仅当 S G SG SG值为 0 0 0


取石子游戏四( n i m nim nim游戏)

n n n堆石子,石子数目分别为 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn A , B A,B A,B两人每次可以选择一堆石子取走任意多个,问 A A A先手是否有必胜策略

相当于二的拓展

有多堆石子,因此可以得到多个 S G SG SG值,而且这些 S G SG SG值必定为 x 1 , x 2 , . . , x n x_1,x_2,..,x_n x1,x2,..,xn ,但是如何才能从这些 S G SG SG值得到整局 S G SG SG值呢, n i m nim nim游戏中先手必败当且仅当 X O R i = 1 n x i = 0 XOR_{i=1}^{n}{x_i}=0 XORi=1nxi=0,证明:

n i m nim nim游戏的 S G SG SG值为 0 0 0时,假定取 x k x_k xk中的一些石子,使其变成 x k ′ x_{k}' xk,假设 X O R i = 1 n x i = 0 = { X O R i = 1 n x i [ k ≠ i ] } x o r   x k ′ XOR_{i=1}^{n}{x_i}=0=\{XOR_{i=1}^{n}{x_i}[k≠i]\} xor\space x_k' XORi=1nxi=0={XORi=1nxi[k=i]}xor xk,所以 x k = x k ′ x_k=x_k' xk=xk,故这是错误的,因此再去走石子后, S G SG SG必然发生改变

对于一个 S G SG SG值不为 0 0 0的状态,必然可以通过一个操作,使其 S G SG SG值变为 0 0 0,我们只需要找到当前 S G SG SG最左段位 1 1 1的一列,任意找到一堆石子使那一列同样为 1 1 1,从这对中取走若干石子,使其 S G SG SG值为 0 0 0,这是显然可以的,因为那一列变成 0 0 0,这个数就必然变小了,对于其他列只需要把 0 0 0变成 1 1 1 1 1 1变成 0 0 0即可


取石子游戏五( N i m k Nimk Nimk

n n n堆石子,石子数目分别为 x i x_i xi A , B A,B A,B两人可以选取最多 k k k堆石子,并从每堆石子堆中取走任意多的石子,问 A A A是否有必胜策略

N i m Nim Nim游戏就是 N i m k Nimk Nimk k = 1 k=1 k=1的情况

N i m k Nimk Nimk存在必胜策略,当且仅当将所有石子数转成二进制后,存在某位上,所有二进制中 1 1 1的个数之和 % ( k + 1 ) \%(k+1) %(k+1)不为 0 0 0,用数学语言表述,则存在一个数 t t t,使得 ( ∑ i = 1 n x i   x o r   2 t − 1 ) % ( k + 1 ) ≠ 0 (\sum_{i=1}^n{x_i \space xor \space 2^{t-1}})\%(k+1)≠0 (i=1nxi xor 2t1)%(k+1)=0,即(把 n n n堆石子的石子数用二进制表示,统计每个二进制位上 1 1 1的个数,若每一位上 1 1 1的个数 m o d ( k + 1 ) mod(k+1) mod(k+1)全部为 0 0 0,则必败,否则必胜。)

证明:

1.全为0的局面一定是必败态。
2.对于任意一种必胜状态,必然存在一种取石子方式,使得其可以转移到必败状态,我没设必胜状态下, 1 1 1的个数 % ( k + 1 ) \%(k+1) %(k+1)不为 0 0 0的最高二进制位上有 m m m 1 1 1,则将这些 1 1 1都改成 0 0 0需要更改 m m m
3.若遇到下一个二进制位上, 1 1 1的个数 % ( k + 1 ) \%(k+1) %(k+1)不为 0 0 0,记该位上有 r r r 1 1 1,并且记之前改变的 m m m堆在该位上有 a a a 1 1 1 b b b − 1 -1 1(所有变量都是在 % ( k + 1 ) \%(k+1) %(k+1)之后的值)

分类讨论一下:

  • a ≥ r a≥r ar,则将 r r r 1 → 0 1→0 10

  • b ≥ k + r − 1 b≥k+r-1 bk+r1,则将 k + 1 − r k+1-r k+1r 0 → 1 0→1 01

  • a < r a<r a<r b < k + 1 − r b<k+1-r b<k+1r,则我们改变之前 m m m堆意外的 r − 1 r-1 r1堆,那么我们改变的堆数为 m + r − 1 → a + b + r − a → b + r m+r-1→a+b+r-a→b+r m+r1a+b+rab+r,又因为 b + r < k + 1 − r + r → k + 1 b+r<k+1-r+r→k+1 b+r<k+1r+rk+1,所以我们改变的堆数 m − r + a < k + 1 m-r+a<k+1 mr+a<k+1,那么这样的改法是合法的

重复上述操作,我们必然能使每一位上的 1 1 1的个数 % ( k + 1 ) \%(k+1) %(k+1) 0 0 0,即转移到先手必败态

那么对于任意一个先手必败态而言,由于我们每次最多只能选取 k k k堆,所以我没不能再同一二进制位上改变 k + 1 k+1 k+1个值;而且每次改变会导致一系列的连锁反应,因此我没无法从一个先手必败态转移到先手必败态,证毕


取石子游戏六( W y t h o f f ′ s   G a m e Wythoff's\space Game Wythoffs Game

有两堆石子,个数为 x 1 x_1 x1 x 2 x_2 x2 A , B A,B A,B轮流取石子,规定要么只取一堆的任意一个,要么在两堆里取同样任意多个,问 A A A先手是否有必胜策略

若 两 堆 物 品 的 初 始 值 为 ( x , y ) , 且 x ≤ y , 再 设 z = y − x 记 w = ⌊ 5 + 1 2 × z ⌋ 若 w = x , 则 先 手 必 败 , 否 则 先 手 必 胜 若两堆物品的初始值为(x,y),且x\le y,再设z=y-x\\ 记w=\lfloor\frac{\sqrt5+1}{2}\times z\rfloor\\ 若w=x,则先手必败,否则先手必胜 (x,y),xy,z=yxw=25 +1×zw=x,

对 于 任 意 一 组 二 元 组 ( x , y ) , 都 满 足 设 k , k ∣ a , k ∣ b x = ⌊ k ⋅ φ ⌋ , y = ⌊ k ⋅ φ 2 ⌋ , 其 中 φ = 1 + 5 2 , φ 2 = 3 + 5 2 对于任意一组二元组(x,y),都满足\\ 设 k,k|a,k|b\\ x=\lfloor k \cdot φ \rfloor,y=\lfloor k \cdot φ^2 \rfloor,其中φ=\frac{1+\sqrt 5}{2},φ^2=\frac{3+\sqrt 5}{2} (x,y),k,ka,kbx=kφ,y=kφ2,φ=21+5 ,φ2=23+5

威佐夫博弈的性质

首先,由题目可知,当这两堆石子一样多时,先手获胜;当有一堆石子为空时,先手获胜。

( a [ i ] , b [ i ] ) (a[i],b[i]) (a[i],b[i])表示先手必败的局势,其中 a [ i ] , b [ i ] a[i],b[i] a[i],b[i]分别表示两堆石子的个数,我们又称这种话局势为奇异局势

若两堆石子的初始状态为 ( 1 , 2 ) (1,2) (1,2),则有以下 4 4 4种情况:

1.先手从第一堆中取一个,后手从第二堆中取两个,先手输,后手赢
2.先手从第二堆中取一个,后手将两堆都取一个,先手输,后手赢
3.先手从第二堆中取两个,后手从第一堆中取一个,先手输,后手赢
4.先手从两堆中各取一个,后手从第二堆中取一个,先手输,后手赢

则,若石子状态是 ( 1 , 2 ) (1,2) (1,2)时,先手必输

列举一下:
( 1 , 2 ) , ( 3 , 5 ) , ( 4 , 7 ) , ( 6 , 10 ) , ( 8 , 13 ) , ( 9 , 15 ) , ( 11 , 18 ) , ( 12 , 20 ) , ( 14 , 23 ) , ( 16 , 26 ) , ( 17 , 28 ) , ( 19 , 31 ) , ( 21 , 34 ) , ( 22 , 36 ) , ( 24 , 39 ) , ( 25 , 41 ) (1,2),(3,5),(4,7),(6,10),(8,13),(9,15),(11,18),(12,20),(14,23),(16,26),(17,28),(19,31),(21,34),(22,36),(24,39),(25,41) (1,2),(3,5),(4,7),(6,10),(8,13),(9,15),(11,18),(12,20),(14,23),(16,26),(17,28),(19,31),(21,34),(22,36),(24,39),(25,41)

小插曲:广义斐波那契数列的通项公式是 a n = 1 5 ( φ n − ( 1 − φ ) n ) a_n=\frac{1}{\sqrt 5}{(φ^n-(1-φ)^n)} an=5 1(φn(1φ)n),其中 φ = 1 + 5 2 φ=\frac{1+\sqrt 5}{2} φ=21+5 ,威佐夫数表包含了所有可能的广义斐波那契数列

威佐夫博弈的结论

(1)状态是单调递增的
(2)状态的石子数量的差是个等差数列(公差为1),这个序列为:0,1,2,3,4,5,6,7,8,9,10,11…
(3)状态的第一个数字是之前没有出现过的第一个数字。比如说第二个状态的第一个数字1,就是前几个状态没有出现的数字。
(4)每个状态的第一个数字竟然是这个状态的两堆石子数量的差∗1.618

关于1.618

1.618 1.618 1.618是一个非常神奇的数字,它既是黄金分割率的近似值 + 1 +1 +1,即 0.618 + 1 0.618+1 0.618+1,也是 1 + 5 2 ≈ 1.618 \frac{1+ \sqrt 5}{2} ≈ 1.618 21+5 1.618

b e a t t y 数 列 beatty数列 beatty b e a t t y 定 理 beatty定理 beatty

取无理数 α , β α,β α,β,使得 1 α + 1 β = 1 \frac{1}{α}+\frac{1}{β}=1 α1+β1=1,构造两个数列 a n , b n a_n,b_n an,bn,它们的通项为 a n = ⌊ α n ⌋ a_n=\lfloor αn \rfloor an=αn b n = ⌊ β n ⌋ b_n=\lfloor βn \rfloor bn=βn

详细证明


取石子游戏七 (斐波那契 N i m Nim Nim

有一堆个数为 n n n的石子, A , B A,B A,B轮流取石子,满足:

  • 先手不能再第一次把所有石子取完
  • 之后每次可以取的石子数介于 1 1 1到对手刚取的石子数的 2 2 2倍之间(包含 1 1 1和对手刚取的石子数的 2 2 2倍)

约定取走最后一个石子为赢家,问 A A A先手是否有必胜策略
当 n 为 F i b o n a c c i 数 的 时 候 , 先 手 必 败 当n为Fibonacci数的时候,先手必败 nFibonacci
f i b ( i ) fib(i) fib(i)表示斐波那契数列的第 i i i

证明:当 n n n为大于等于 2 2 2的斐波那契数时先手必败

  • n = 2 n=2 n=2时,显然先手必败

  • n ≤ f i b ( k ) n\le fib(k) nfib(k)且为斐波那契数时,先手必败

    那么 n = f i b ( k + 1 ) n=fib(k+1) n=fib(k+1)时,先手第一次不能拿大于等于 f i b ( k − 1 ) fib(k-1) fib(k1)个物品,如果这样,那么第一次拿完后剩余的物品数为 n ′ ≤ f i b ( k + 1 ) − f i b ( k − 1 ) = f i b ( k ) = f i b ( k − 1 ) + f i b ( k − 2 ) ≤ 2 f i b ( k − 1 ) n' \le fib(k+1)-fib(k-1)=fib(k)=fib(k-1)+fib(k-2) \le 2 fib(k-1) nfib(k+1)fib(k1)=fib(k)=fib(k1)+fib(k2)2fib(k1)

    那么后手在第二次可以直接取得胜利,因此先手第一次拿的物品必须小于 f i b ( k − 1 ) fib(k-1) fib(k1),把 f i b ( k − 1 ) fib(k-1) fib(k1)看做一个子游戏,由假设可得后手可以恰好把 f i b ( k − 1 ) fib(k-1) fib(k1)取完,那么现在游戏只剩 f i b ( k ) fib(k) fib(k)个物品,由假设得先手必败

综上所述, n n n为斐波那契数时先手必败

接下来我们证明: n n n不为斐波那契数时先手必胜

引入齐肯多夫定理:任何整数都可以被分解成若干个不连续的斐波那契数之和

证明:

  • $ n=1,2,3 时 , 时, fib(2)=1,fib(3)=2,fib(4)=3$命题成立

  • n ≤ k n\le k nk时命题成立

    那么 n = k + 1 n=k+1 n=k+1时,若 n n n f i b fib fib,命题成立, n n n不是斐波那契数时,设 f i b ( m ) < n < f i b ( m + 1 ) , n ′ = n − f i b ( m ) fib(m)<n<fib(m+1),n'=n-fib(m) fib(m)<n<fib(m+1),n=nfib(m),则有 n ′ < f i b ( m + 1 ) − f i b ( m ) = f i b ( m − 1 ) < m n'<fib(m+1)-fib(m)=fib(m-1)<m n<fib(m+1)fib(m)=fib(m1)<m

    因为 n ′ < n n'<n n<n,有因为归纳法假设 n ′ n' n可以表示成不连续的 f i b n a c c i fibnacci fibnacci数列之和,即 n ′ = f i b ( p 2 ) + f i b ( p 3 ) + . . . + f i b ( p t ) , ( p 2 > p 3 > . . . > p t ) n'=fib(p_2)+fib(p_3)+...+fib(p_t),(p_2>p_3>...>p_t) n=fib(p2)+fib(p3)+...+fib(pt),(p2>p3>...>pt)且不是连续的整数,有因为 n ′ < f i b ( p 1 − 1 ) n'<fib(p_1-1) n<fib(p11),所以 p 2 < p 1 − 1 p_2<p_1-1 p2<p11,即 p 1 , p 2 p_1,p_2 p1,p2也不是连续的整数

n = n ′ + f i b ( p 1 ) = f i b ( p 1 ) + f i b ( p 2 ) + . . . + f i b ( p t ) , ( p 1 > 2 > . . . > p t ) n=n'+fib(p_1)=fib(p_1)+fib(p_2)+...+fib(p_t),(p_1>_2>...>p_t) n=n+fib(p1)=fib(p1)+fib(p2)+...+fib(pt),(p1>2>...>pt)且不是连续的整数,所以该定理成立

所以 Z e c k e n d o r f 定 理 ( 齐 肯 多 夫 定 理 ) Zeckendorf定理(齐肯多夫定理) Zeckendorf()对所有的 n , n ∈ Z ∗ n,n\in Z^* n,nZ都成立

再证明 f i b n a c c i 数 列 fibnacci数列 fibnacci的必败证明:

首先给出三个定理:

  • f i b ( n + 1 ) < 2 ∗ f i b ( n ) < f i b ( n + 2 ) fib(n+1) < 2*fib(n) < fib(n+2) fib(n+1)<2fib(n)<fib(n+2)
  • f i b ( n + 2 ) < 3 ∗ f i b ( n ) fib(n+2) < 3*fib(n) fib(n+2)<3fib(n)
  • 4 ∗ f i b ( n ) < 3 ∗ f i b ( n + 1 ) , ( 4 ∗ f i b ( n ) < 3 ∗ ( f i b ( n ) + f i b ( n − 1 ) ) − > f i b ( n ) < f i b ( n + 1 ) < 3 ∗ f i b ( n − 1 ) 4*fib(n) < 3*fib(n+1),(4*fib(n)<3*(fib(n)+fib(n-1))->fib(n)<fib(n+1)<3*fib(n-1) 4fib(n)<3fib(n+1),(4fib(n)<3(fib(n)+fib(n1))>fib(n)<fib(n+1)<3fib(n1)

同样运用数学归纳法:

  • i = 2 i=2 i=2时,先手只能取 1 1 1颗,显然必败,结论成立
  • 假设当 i ≤ k i\le k ik时结论成立,则当 i = k + 1 i=k+1 i=k+1时, f i b ( i ) = f i b ( k ) + f i b ( k − 1 ) fib(i)=fib(k)+fib(k-1) fib(i)=fib(k)+fib(k1)

则我没可以吧这一堆石子看成两堆,简称 k k k堆,和 k − 1 k-1 k1

( 一 定 可 以 看 成 两 堆 , 因 为 假 如 先 手 第 一 次 取 的 石 子 数 ≥ f i b ( k − 1 ) , 则 后 手 可 以 直 接 取 完 f i b ( k ) , 因 为 f i b ( k ) < 2 ∗ f i b ( k − 1 ) ) (一定可以看成两堆,因为假如先手第一次取的石子数≥fib(k-1),则后手可以直接取完fib(k),因为fib(k)<2*fib(k-1)) (fib(k1)fib(k),fib(k)<2fib(k1))

对于 k − 1 k-1 k1堆,由假设可知,不论先手怎么取,后手总能取到最后一颗,对后手取的石子数 x x x情况的分析:

如果先手第一次取的石子数 y ≥ f i b ( k − 1 ) 3 y≥\frac {fib(k-1)}{3} y3fib(k1),则这小堆所剩的石子数小于等于 2 y 2y 2y,即后手可以直接取完,此时 x = f i b ( k − 1 ) − y x=fib(k-1)-y x=fib(k1)y,则 x ≤ 2 ∗ f i b ( k − 1 ) 3 x\le \frac{2*fib(k-1)}{3} x32fib(k1)

因为 2 ∗ f i b ( k − 1 ) 3 < f i b ( k ) 2 \frac{2*fib(k-1)}{3}<\frac{fib(k)}{2} 32fib(k1)<2fib(k),所以可得 x < f i b ( k ) 2 x<\frac{fib(k)}{2} x<2fib(k)

即后手取完 k − 1 k-1 k1堆后,先手在能取最多石子的情况下不能一次性取完 k k k堆,所以游戏规则没有改变,由假设可知 ,对于 k k k堆,后手仍能取到最后一颗,所以后手必胜

i = k + 1 i=k+1 i=k+1时,结论依然成立,对于不是 f i b o n a c c i 数 列 fibonacci数列 fibonacci,首先进行分解,分解的时候,要取尽量大的 f i b o n a c c i 数 fibonacci数 fibonacci,比如分解 85 85 85 85 85 85 55 55 55 89 89 89之间,于是可以写成 85 = 55 + 30 85=55+30 85=55+30,然后继续分解 30 30 30 30 30 30 21 21 21 34 34 34之间,所以可以写成 30 = 21 + 9 30=21+9 30=21+9,故可以分解为 85 = 55 + 21 + 8 + 1 85=55+21+8+1 85=55+21+8+1

则我们可以把 n n n写成 n = f i b ( p 1 ) + f i b ( p 2 ) + . . . + f i b ( p k ) , ( p 1 > p 2 > . . . > p k ) n=fib(p_1)+fib(p_2)+...+fib(p_k),(p_1>p_2>...>p_k) n=fib(p1)+fib(p2)+...+fib(pk),(p1>p2>...>pk),我们令先手先取完 f i b ( p k ) fib(p_k) fib(pk),即最小的这一堆,由于各个 f i b fib fib之间不连续,则 p k − 1 > p k + 1 p_{k-1}>p_{k+1} pk1>pk+1,则有 f i b ( p k − 1 ) > 2 ∗ f i b ( p k ) fib(p_{k-1})>2*fib(p_k) fib(pk1)>2fib(pk),即后手只能取 f i b ( p k − 1 ) fib(p_{k-1}) fib(pk1)这意味,且不能一次取完

此时后手相当于面临这个子游戏(只有 f i b ( p k − 1 ) fib(p_{k-1}) fib(pk1),这一堆石子,且后手先取)的必败态,即先手一定可以取到这一堆的最后一刻石子,同理可知,对于以后的每一堆,先手都可以取到这一堆的最后一颗石子,从而取得游戏的胜利


取石子游戏八( s t a i r c a s e N i m staircase Nim staircaseNim 阶 梯 N i m 阶梯 Nim Nim

n n n堆石子,每堆石子的数量为 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn A , B A,B A,B轮流操作,每次可以选第 k k k堆中的任意多个石子,放到第 k − 1 k-1 k1堆中,第 1 1 1堆中的石子可以放到第 0 0 0堆中,最后无法操作的人为输,问 A A A先手是否有必胜策略

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

证明:

假如我们是先手,我们就按照这个方法将多余的石子从奇数堆移动到偶数堆里面

此后如果对手一道的是奇数堆,我们就继续移动奇数堆,使得 S G SG SG值重新变为 0 0 0;若果对手移动的是偶数堆,我们就将他移动到奇数堆中的石子继续往下移

这样进过多次操作我们总能使奇数堆保持必胜状态,最后我们总可以在对手之后将石子从奇数堆移动到偶数堆,最后移动到第 0 0 0堆,这样对手就不能移动了

所以通过整个过程,我们可以发现,偶数堆中的石子,不会影响整个游戏的结果,只有奇数堆中的石子会影响游戏结果,因此对这个游戏而言,先手必败当且仅当奇数堆中的石子数异或和为 0 0 0


取石子游戏九( A n t i   N i m Anti \space Nim Anti Nim

这是四 ( N i m ) (Nim) (Nim)的变向版本,其他条件均不变,唯独定义:取到最后一个石子的人为输,那么 A A A先手是否有必胜策略

这个游戏胜利当且仅当:

  • 所有对石子数都为 1 1 1,且 S G SG SG值为 0 0 0
  • 至少有一堆石子数大于 1 1 1 S G SG SG值不为 0 0 0

证明:

对这个游戏分析,将其分成两种情况

  • 所有对的石子数均为 1 1 1
  • 至少有一堆石子数大于 1 1 1

对于第一种情况而言,易得当堆数为奇数时,先手必败,否则先手必胜

对于第二种情况而言,分两种情况讨论

  • S G SG SG值不为 0 0 0时:若还有两堆石子数目大于 1 1 1时,我们将 S G SG SG值变为 0 0 0即可,若只有一堆石子数目大于 1 1 1时,我们总可以让状态变成有奇数个 1 1 1,所以当 S G SG SG不为 0 0 0时,先手必胜
  • S G SG SG值为 0 0 0时:这样的话至少会有两堆石子数目大于 1 1 1,那么先手决策完之后,必定会使局面 S G SG SG不为 0 0 0,这样便到了先手必胜局,所以当 S G SG SG 0 0 0,先手必败

这些推导都只对 A n t i   N i m Anti \space Nim Anti Nim成立,堆于 A n t i   S G − 组 合 游 戏 Anti\space SG-组合游戏 Anti SG这个推论会死不成立的,可以看->[贾志豪《组合游戏略述——浅谈SG游戏的若干拓展及变形》

[博弈论拓展,囚徒博弈论,枪手博弈论,海盗分金](简单食用的博弈论 - 洛谷专栏)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值