【问题标题】:Simple Nim Game简单的尼姆游戏
【发布时间】:2012-10-25 03:34:47
【问题描述】:

我最近学习了 Nim 游戏的基本策略,其中有一堆元素。然后必须选择一堆并从该堆中删除任意数量的元素。我发现了一些据说是 Nim 的问题,但我无法将其转换为代表堆的标准 Nim 问题。

问题说有一个像国际象棋一样的方形棋盘 - 这里只有典当。所以在每一列中都有两个棋子 - 一个白色的和一个黑色的。没有棋子可以超越它,但它可以来回移动,这与国际象棋不同,棋子只能向前移动。他们不能像国际象棋那样通过吃掉对手的棋子来改变列。当任何一方没有选择让步时,游戏结束。给定棋子的初始配置,程序需要输出获胜者 - 白/黑。

知道如何将其转换为标准版本吗?

【问题讨论】:

  • 这不是一个真正的编程问题。这是一个博弈论问题。我建议咨询 Berlekamp、Conway 和 Guy 的 Winning Ways。它研究 Nim 的各种变体等等。
  • @RaymondChen 你让我对这本书感兴趣。这本书有免费的pdf版本吗?
  • 这本书仍在印刷中。你可以问出版商。你的游戏是八车道的青蛙和蟾蜍。
  • 我认为,如果每个棋子在同一列中与其对手相邻,那么轮到它的玩家最终会输给好棋。我认为达​​到这种状态可能是一个 nim 游戏,其中数字是每列中棋子之间的方格数 - 但这只是一个评论,因为我还没有证明这一点。
  • @mcdowella,感谢您的回复。我使用与您相同的想法接受了代码 - 每列中两个棋子之间没有块。

标签: algorithm game-theory


【解决方案1】:

请注意,每一步都会改变相应棋子之间距离总和的奇偶性。计算奇偶性,如果总和为奇数,则当前玩家获胜(因为如果奇数,当前玩家总是可以向前移动棋子)

【讨论】:

    猜你喜欢
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2014-03-24
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多