【问题标题】:Strategy to win game if players can take upto 4 coins如果玩家最多可以拿 4 个硬币来赢得游戏的策略
【发布时间】:2016-03-07 13:49:51
【问题描述】:

两名玩家正在玩一场游戏,每人必须在每回合中选择 1、2、3 或 4 个硬币。一共有n个硬币。拿起最后一枚硬币的玩家获胜。设计一个赢得比赛的策略。

假设我是玩家之一,解决问题的算法策略是什么,以便我可以赢得比赛?

【问题讨论】:

  • 我们没有获胜条件。
  • 懒惰没有办法解决。不幸的是。
  • @erip - 你怎么能这么说?
  • 因为,虽然我假设“如果对手拿走最后一个硬币你赢”或“如果你拿最后一个硬币你赢”将是获胜条件;但你的帖子没有说这样的事情。
  • 您告诉我们设计一个赢得比赛的策略,并且您希望最大化您的获胜机会。让我们制定一个规则,如果只剩下 1 个硬币,那么轮到你了。那你怎么输?

标签: algorithm dynamic-programming


【解决方案1】:

为前 10 场左右的比赛制作一张桌子;会有一个清晰的模式。如果有……

1 coin: take 1, you win
2 coins: take 2, you win
3 coins: take 3, you win
4 coins: take 4, you win
5 coins: you lose (whatever you choose, the opponent wins by rule 1-4)
6 coins: take 1, opponent loses by rule 5
7 coins: take 2, opponent loses by rule 5
...
10 coins: you lose (whatever you choose, the opponent wins by rule 6-9)
11 coins: take 1, opponent loses by rule 10
...

所以,你总是拿n % 5硬币,除非是0(如果是0,无论你做什么,你都会输给对手完美的发挥,所以拿1来最大化他犯错的机会)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多