`

Nim Game

阅读更多
You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the winner. You will take the first turn to remove the stones.

Both of you are very clever and have optimal strategies for the game. Write a function to determine whether you can win the game given the number of stones in the heap.

For example, if there are 4 stones in the heap, then you will never win the game: no matter 1, 2, or 3 stones you remove, the last stone will always be removed by your friend.

拿石子的游戏。假设有一堆石子,没人每次可以拿1个,两个,最多三个。如果是你先拿,让你判断你是否会赢。假设玩游戏的人都很聪明,知道怎样回赢。题目中的提示假设石子有四颗,无论我们拿几颗我们都会输,对方肯定能一次拿走剩余的石子。如果是八颗石子也是一样的。事实上石子的个数为4的倍数我们肯定就会输。代码很简单,判断是否为4的倍数,代码如下:
public class Solution {
    public boolean canWinNim(int n) {
        return n % 4 == 0 ? false : true;
    }
}
分享到:
评论

相关推荐

    matlab开发-NIMgame

    在这个名为"MATLAB开发-NIMgame"的项目中,我们关注的是利用MATLAB构建一个NIM游戏的图形用户界面(GUI)。NIM游戏是一个经典的数学游戏,通常涉及到玩家之间的策略和逻辑推理。 NIM游戏规则相对简单,但具有深度。...

    Nim.rar_The Game of Nim_acm nim game_nim_nim 游戏_nim.cpp

    Nim游戏(The game of Nim)是一个很著名而且有很多版本的游戏.下面这个版本有一个有趣的获胜策略.两名参与者交替从一堆石子中取出若干数目,其个数由参与者自已决定.但是要求参与者每次至少取出一个,至多取出一半,然后...

    nim-game.rar_nim_nim game_系统

    nim小游戏 可在dos系统下与计算机玩游戏 让计算机和人较量.在10到100之间生成一个随机数作为初始的石子数目.然后,随机产生0或1,以决定是计算机先玩还是人先玩.然后,再随机产生0或1,以决定计算机采用"聪明"还是"愚蠢...

    nimgame:用于Nimrod语言的简单2D游戏引擎

    **Nimgame:Nimrod语言的2D游戏开发** Nimgame是一个针对Nimrod编程语言(现称为Nim)的轻量级2D游戏引擎。它为开发者提供了创建简单2D游戏所需的基本功能,使得游戏开发变得更加便捷。Nim是一种现代、静态类型的...

    nimgame2:用于Nim语言的简单2D游戏引擎

    **Nimgame2:Nim语言的简单2D游戏引擎** Nimgame2是一个专为Nim编程语言设计的轻量级2D游戏开发框架。它提供了基础的游戏开发功能,如渲染、音频处理、精灵动画、碰撞检测以及游戏循环管理等,让开发者能够快速构建...

    The Game Of Nim.pptx

    尼姆游戏(Nim Game)是一种经典的两人对战策略游戏,在数学、计算机科学以及游戏理论领域都有广泛的应用与研究。本篇将详细介绍尼姆游戏的基本规则、历史背景以及最重要的——如何制定有效的获胜策略。 #### 游戏...

    ng2planetoids:用于nimgame2引擎的演示游戏

    《ng2planetoids:nimgame2引擎的精彩演示游戏》 ng2planetoids是一款基于Nim语言的游戏框架——NimGame2所开发的演示游戏。这款游戏旨在展示NimGame2引擎的强大功能和灵活特性,为开发者提供了一个学习和借鉴的...

    NimGame:NimGame 与回溯算法

    尼姆游戏 尼姆游戏 IA 播放器的传统游戏。 规则:对于两个玩家:user 和 Iplayer 棋盘上有一定数量的棋子(早期版本只有 5) 第一个动作可以选择任意数量的棋子,但最小为 1,最大为棋子数减 1。...

    NIMGame:Nim是一款具有多种变体的古老游戏。 这是一个

    《NIMGame: 探索古老的尼姆游戏与Java实现》 尼姆游戏,源于19世纪的欧洲,是一种简单的策略游戏,具有多种变体,深受数学爱好者和游戏设计者们的喜爱。在这个游戏中,两位玩家轮流从一堆大理石中取走一定数量的...

    NimGame:Nim游戏

    NimGame 尼姆游戏使用说明您将与Nim博士对战! 将会产生大量的弹珠,您的任务是拿走弹珠,直到一个玩家拿走最后一个弹珠为止。 最后一个弹珠的人输了! 您最多只能占用每回合剩余弹珠总数的一半。 举例:如果还有40...

    Nim游戏java包.rar

    NimGame game = new NimGame(10); boolean currentPlayer = true; // 假设当前玩家是先手 while (!game.isGameOver()) { if (currentPlayer) { System.out.println("Your move. Please enter the number of ...

    Game-of-Nim

    这可以通过创建一个类 `NimGame` 来完成,其中包含私有变量如 `int piles[]` 表示石子堆。 2. **玩家选择**:游戏循环中,玩家需要选择一堆石子并决定取走的数量。可以使用 `Scanner` 类从用户那里获取输入,然后...

    Swift:以Nim编写的游戏引擎,针对快速制作出色的游戏进行了优化

    Swift游戏引擎是一款基于Nim编程语言开发的高效能游戏开发工具,特别设计用于快速构建高质量的2D游戏。Nim是一种现代、系统级的编程语言,具有C的性能,Python的简洁性和Ruby的表达力,这使得它在游戏开发领域具有...

    双人/单人对战数字抓宝山游戏

    《双人/单人对战数字抓宝山游戏》是一款基于Java编程语言开发的小型桌面游戏,也称为“nim game”或“拿石子游戏”。游戏的核心规则是:玩家(可以是两个人或一个人与计算机AI)轮流从一堆石子中拿走1到3个石子,...

    nim_tic_tac_toe:由nim制作的tic tac toe游戏

    1. 游戏界面:nim_tic_tac_toe可能使用nim的console模块来创建命令行界面,或者使用nim的GUI库如nimgame或nimterface来构建图形用户界面。 2. 游戏状态:游戏的状态管理包括跟踪当前的玩家、棋盘上的标记以及游戏...

    博弈问题1

    Nimk Game是Nim游戏的一种变体,玩家可以同时从k堆石子中取走石子,每堆石子可以取不同的数量。每堆石子的SG函数是将石子数转换为二进制后,计算每一位上1的个数模(k+1)。若所有位上的结果都是0,玩家必败;否则,...

    博弈论课件

    在这个"博弈论课件"中,我们主要会探讨三个经典的博弈论模型:巴什博奕(Nim Game)、威佐夫博弈(Wythoff's Game)以及尼姆博弈(Nim Game)。 首先,巴什博奕,也称为"取石游戏",是博弈论中的基础模型之一。在这...

    博弈论小结by xaphoenix

    巴什博奕(Bash Game)是一个简单的物品分割游戏,威佐夫博弈(Wythoff's Game)涉及两个玩家交替移除数字,尼姆博弈(Nim Game)则是在一堆或多堆物品中移除物品,目标是让对手无法操作。这些游戏的拓展,如k倍动态...

    ACM模板 卡特兰数和博弈论

    本文将结合这两门学科中的经典问题——卡特兰数以及几种常见的博弈论游戏,如Bash Game、Wythoff's Game和Nim Game等,来探讨它们的解法和应用。 #### 二、卡特兰数 卡特兰数是一组自然数序列,常出现在各种组合...

Global site tag (gtag.js) - Google Analytics