我对 Sprague–Grundy 定理感到困惑,该定理在 CodeChef 上尝试解决公平游戏时被用在许多问题中。它只是指出,公正的游戏等同于 nimber 或 grundy 值。游戏的结果取决于所有子游戏的 grundy 值的异或。如果它为零,则第一个玩家输,如果他和对方玩家发挥最佳,否则获胜。但我遇到的问题是我们如何获得任何子游戏的基本值。例如,对于 nim 游戏,我们如何获得单堆的 nim 值。谢谢。
最佳答案
这些值是桩的大小。如果堆的大小为 1,2,3
,则 1^2^3 == 0
会使玩家处于失败位置。 2^2^5 == 5
将是获胜位置。
关于algorithm - 为公正的游戏寻找粗俗的值(value)观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20301308/