此题属于 Impartial Game
根据 Sprague-Grundy 定理所写的程式码: http://codepad.org/TY9K0HuG
查询 OEIS 的结果: n = 71 开始出现规律(周期 = 12) https://goo.gl/KOLXU1
先手胜型、输型判断法:
将每堆糖果的 g(n) 值做“二进制 xor 总和”得到 Nimber
Nimber 为 0 (输型)
Nimber 不为 0 (赢型)
例: 3 堆糖果(7,7,7), g(7) = 2
Nimber = 2 ^ 2 ^ 2 = 2(赢型)
例: 2 堆糖果(1,4), g(1) = 1, g(4) = 1
Nimber = 1 ^ 1 = 0(输型)
例: 3 堆糖果(2,3,4), g(2) = 2, g(3) = 3, g(4) = 1
Nimber = 2 ^ 3 ^ 1 = 0(输型)
以此类推
※ 引述《dsnsid (豪洨人)》之铭言:
: 有一个游戏是这样的,
: 给你一共14颗的糖果,如下图:
: ○○○○○○○
: ○○○○○○○
: 你一次只能够抓一颗,或是两颗,位置随你选择。
: 如: 或
: ●●○○○○○ ○○○●○○○
: ○○○○○○○ ○○○○○○○
: 但是不可以这样抓。
: 如: 或 或
: ○○○○○○○ ●○○○○○○ ●○○○○○○
: ○●○○○○● ●○○○○○○ ○○○○●○○
: 如果最后一颗被你抓到,你就赢了。
: 请问这样要怎么样才能够必胜?
: