博弈论入门
- 必败情况为P,必胜情况为N,我们要得出N一定有方法能转换到P,P任意操作都会到N
1.巴什博弈
-
两个顶尖聪明的人在玩游戏,有一堆n个石子,每次每个人能取\([1,m]\)个石子,不能拿的人输,请问先手与后手谁必败?
-
1~m个石子,先手必胜
-
反推m+1个石子只能到1~m,所以必败
-
反推m+2~2*m+1一定能到m+1,所以必胜
-
综上所述,当石子数为m+1的倍数时必败,否则必胜
2.尼姆博弈
-
两个顶尖聪明的人在玩游戏,有n堆石子,第\(i\)堆有\(a_i\)个,每人每次能从一堆石子中取任意多个石子但不能不取,不能拿的人输,请问先手与后手谁必胜?
-
最后所有数都为0,所以异或和为0
-
反推一步,将一个数改变,那么异或和一定不为0
-
也就是说先手的人保持自己的异或和为0就能获得最后的胜利,如果本来就是0就输
-
那么一定有保持自己异或和为0的取法吗?
-
假设异或和为x,那么一定有一个数在这个位上为1,让它和x异或,它一定会变小,因为x最高位变成了0,无论后面是多少都会变小。
-
结论:异或和为0后手赢,反之先手赢
nimk游戏
-
如果将游戏改成每人每次可以从\([1,d]\)堆中各取任意多个石子呢?
-
每个二进制上为1的个数%(1 + d) = 0为必败情况
-
以下为反推过程
-
全0为P
-
对于P状态,每次操作\([1,d]\)个数,对于操作的最高位来说也就是减少\([1,d]\)次,无法变回%(1 + d) = 0
-
因此P任意操作都会到N得证
-
对于N状态,从高位处理到低位,如果高位有从1到0的,那么下面的位无论取0还是1都无所谓
-
对于最大位,取多余的1
-
对于下面的位,假设有n个高位从1到0,也就是说有n个可以任意换0或换1,有a个1和b个0,那么它的贡献就可以为\([-a,b]\),如果n到了d,这个范围就包括了\([1,d]\)
-
如果n没到d,那就可以取外面的1,照样可以让这个范围覆盖\([1,d]\),并且将这个范围扩大
-
因此N有方法到P得证
-
综上所述每个二进制上为1的个数%(1 + d) = 0为必败情况,否则必胜
3.威佐夫博弈
- 两个顶尖聪明的人在玩游戏,有2堆石子,每人每次可以拿走任意一堆中任意数量的石子或在两堆石子中拿走相同数量的石子,不能拿的人输,请问先手与后手谁必胜?
- 结论:\((⌊\frac{1+\sqrt5}2|y-x|⌋,⌊\frac{3+\sqrt5}2|y-x|⌋)\)必败,否则必胜,利用Betty定理
不会,再说
扩展威佐夫博弈
- 要求取的数的绝对值之差\(|x-y|<d\),或者只取一个
- 结论:\((⌊\frac{2-d+\sqrt{d^2+4}}2k⌋,⌊\frac{2+d+\sqrt{d^2+4}}2k⌋)\),\(y=x+dk\)必败
背结论呗
4.斐波那契博弈
-
两个顶尖聪明的人在玩游戏,有一堆石子,先手第一次可以拿任意多个但不能全拿走也不能不拿,之后每个人最少拿一个,最多拿前一个人两倍那么多个,谁取到最后一个谁就能获胜,请问先手后手谁必胜?
-
结论:为斐波那契数时必败,否则必败
-
数学归纳法证明:斐波那契数列时,先手必败
-
当n等于2时显然先手必败
-
假设\(n=f[i](i <= k)\)的先手必败,现证明\(n=f[k+1]=f[k]+f[k-1]\)是否先手必败
-
因为\(f[k+1]-f[k-1]=f[k]=f[k-1]+f[k-2]<f[k-1]*2\)所以先手不能取大于\(f[k-1]\)的数
-
那么根据\(n=f[k-1]\)时先手必败,将会是后手取完\(f[k-1]\)所以问题就转换为\(n=f[k]\)时先手必败
-
再证明:不是斐波那契数列时,先手必胜
-
首先根据齐肯多夫定理:任何整数可以分解成若干个不连续的斐波那契数之和,可以将n分解成a+b+c+...
-
取最小的斐波那契数a,因为不连续,所以b>2*a,这就转换为面对斐波那契数b先手必败,直到把所有的数取完
5.阶梯博弈
-
两个绝顶聪明的人在玩游戏,有n堆石子,每次每人可以取走第i堆(i>1)任意数量的石子并将它们放到第i−1堆,或者直接取走第一堆的任意数量石子,不能操作的人输,请问先手能否必胜?
-
转换为奇数位的尼姆博弈
-
从偶数位下放到奇数位,下一个人可以再将这些多的下放到下一个偶数位直到丢掉,所以对于后手来说,丢偶数位没有用
-
如果只丢奇数位,就变成了n/2堆石头,尼姆博弈