Scheme 如何使用位异或来赢得3堆nim?

Scheme 如何使用位异或来赢得3堆nim?,scheme,Scheme,我知道按位异或是如何工作的,我知道获胜的位置等于0。你如何决定调整哪一堆,拿走多少,以创造一个获胜的位置(假设有3堆) Xor每堆石头的数量,得到三堆石头的Xor和。如果异或和为零,就没有获胜的机会。否则,依次使用每堆中的石头数对xor和进行xor,选择xor小于堆中石头数的第一堆,并从堆中移除足够多的石头,使xor为零,这将使所有三堆的xor和为零,从而强制获胜。有关实现,请参阅。(makemove指令(按位异或pile2)2)它移除的石头数是(按位异或pile2)它移除的堆数是2。

我知道按位异或是如何工作的,我知道获胜的位置等于0。你如何决定调整哪一堆,拿走多少,以创造一个获胜的位置(假设有3堆)

Xor每堆石头的数量,得到三堆石头的Xor和。如果异或和为零,就没有获胜的机会。否则,依次使用每堆中的石头数对xor和进行xor,选择xor小于堆中石头数的第一堆,并从堆中移除足够多的石头,使xor为零,这将使所有三堆的xor和为零,从而强制获胜。有关实现,请参阅。

(makemove指令(按位异或pile2)2)它移除的石头数是(按位异或pile2)它移除的堆数是2。