首页 > 其他 > 详细

[LeetCode 292] Nim Game

时间:2015-11-11 22:10:07      阅读:337      评论:0      收藏:0      [点我收藏+]

博弈论中经典的尼姆游戏。

  1. 1个石子,先手全部拿走;
  2. 2个石子,先手全部拿走;
  3. 3个石子,先手全部拿走;
  4. 4个石子,后手面对的是先手的第1,2,3情况,后手必胜;
  5. 5个石子,先手拿走1个让后手面对第4种情况,后手必败;
  6. 6个石子,先手拿走2个让后手面对第4种情况,后手必败;
  7. ……

容易看出来,只有当出现了4的倍数,先手无可奈何,其余情况先手都可以获胜。 
(石子数量为4的倍数)后手的获胜策略十分简单,每次取石子的数量,与上一次先手取石子的数量和为4即可; 
(石子数量不为4的倍数)先手的获胜策略也十分简单,每次都令取之后剩余的石子数量为4的倍数(4*0=0,直接拿光),他就处于后手的位置上,利用上一行的策略获胜。

 

public class Solution {
    public boolean canWinNim(int n) {
        if (n % 4 == 0)
            return false;
        else
            return true;
    }
}

 

[LeetCode 292] Nim Game

原文:http://www.cnblogs.com/libeiucas/p/4957376.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!