码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode 292] Nim Game

时间:2015-11-11 22:12:22      阅读:278      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!