Euclid’s Game
题目给出了两个正数a.b
每次操作,只能大的数减掉小的数的整数倍。一个数变为0的时候结束。
谁先把其中一个数减为0的获胜。问谁可以赢。Stan是先手。
只需判断a >= 2*b即可,因为此时的局势是可控制的,若不然,则只能反复相减,此时局势不能控制。
威佐夫博弈
有两堆各若干个物品,两个人轮流从任意一堆中取出至少一个或者同时从两堆中取出同样多的物品,规定每次至少取一个,至多不限,最后取光者胜利。
P点:(0,0)(1,2)(3,5)(4 ,7)(6,10) (8,13) (9 , 15)(11 ,18)
规律:两数之差递增,0,1,2,3,4,5,6,7。
P点的每个值都符合(a[k]<b[k]):a[k] = (int) ( b[k] - a[k] ) * ( sqrt(5.0) + 1 ) / 2)
阶梯博弈
即有n个阶梯呈升序排列,每个阶梯上有若干个石子,可行的操作是将一个阶梯上的石子移任意个(>0)到前一个台阶。当没有可行操作时(所有石子都被移动到了地面,即第0号台阶)输。
如果奇数号台阶上石子数的异或和=0,则先手必败。