- 浏览: 183413 次
- 性别:
- 来自: 济南
文章分类
最新评论
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的倍数,代码如下:
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; } }
发表评论
-
498. Diagonal Traverse
2019-11-15 13:52 265Given a matrix of M x N eleme ... -
496 Next Greater Element I
2019-11-14 13:50 267You are given two arrays (witho ... -
Word Break II
2016-03-09 03:15 384Given a string s and a dictiona ... -
Insert Interval
2016-03-08 02:11 374Given a set of non-overlapping ... -
Merge Intervals
2016-03-07 05:25 497Given a collection of intervals ... -
Merge k Sorted Lists
2016-03-07 04:03 563Merge k sorted linked lists and ... -
Multiply Strings
2016-03-06 07:27 475Given two numbers represented a ... -
N-Queens II
2016-03-06 03:06 664Follow up for N-Queens problem. ... -
N-Queens
2016-03-06 02:47 469The n-queens puzzle is the prob ... -
First Missing Positive
2016-03-05 03:09 429Given an unsorted integer array ... -
Spiral Matrix
2016-03-04 03:39 575Given a matrix of m x n element ... -
Trapping Rain Water
2016-03-04 02:54 580Given n non-negative integers r ... -
Repeated DNA Sequences
2016-03-03 03:10 426All DNA is composed of a series ... -
Increasing Triplet Subsequence
2016-03-02 02:48 898Given an unsorted array return ... -
Maximum Product of Word Lengths
2016-03-02 01:56 929Given a string array words, fin ... -
LRU Cache
2016-02-29 10:37 602Design and implement a data str ... -
Super Ugly Number
2016-02-29 07:07 672Write a program to find the nth ... -
Longest Increasing Path in a Matrix
2016-02-29 05:56 842Given an integer matrix, find t ... -
Coin Change
2016-02-29 04:39 782You are given coins of differen ... -
Minimum Height Trees
2016-02-29 04:11 704For a undirected graph with tre ...
相关推荐
在这个名为"MATLAB开发-NIMgame"的项目中,我们关注的是利用MATLAB构建一个NIM游戏的图形用户界面(GUI)。NIM游戏是一个经典的数学游戏,通常涉及到玩家之间的策略和逻辑推理。 NIM游戏规则相对简单,但具有深度。...
Nim游戏(The game of Nim)是一个很著名而且有很多版本的游戏.下面这个版本有一个有趣的获胜策略.两名参与者交替从一堆石子中取出若干数目,其个数由参与者自已决定.但是要求参与者每次至少取出一个,至多取出一半,然后...
nim小游戏 可在dos系统下与计算机玩游戏 让计算机和人较量.在10到100之间生成一个随机数作为初始的石子数目.然后,随机产生0或1,以决定是计算机先玩还是人先玩.然后,再随机产生0或1,以决定计算机采用"聪明"还是"愚蠢...
**Nimgame:Nimrod语言的2D游戏开发** Nimgame是一个针对Nimrod编程语言(现称为Nim)的轻量级2D游戏引擎。它为开发者提供了创建简单2D游戏所需的基本功能,使得游戏开发变得更加便捷。Nim是一种现代、静态类型的...
**Nimgame2:Nim语言的简单2D游戏引擎** Nimgame2是一个专为Nim编程语言设计的轻量级2D游戏开发框架。它提供了基础的游戏开发功能,如渲染、音频处理、精灵动画、碰撞检测以及游戏循环管理等,让开发者能够快速构建...
尼姆游戏(Nim Game)是一种经典的两人对战策略游戏,在数学、计算机科学以及游戏理论领域都有广泛的应用与研究。本篇将详细介绍尼姆游戏的基本规则、历史背景以及最重要的——如何制定有效的获胜策略。 #### 游戏...
《ng2planetoids:nimgame2引擎的精彩演示游戏》 ng2planetoids是一款基于Nim语言的游戏框架——NimGame2所开发的演示游戏。这款游戏旨在展示NimGame2引擎的强大功能和灵活特性,为开发者提供了一个学习和借鉴的...
尼姆游戏 尼姆游戏 IA 播放器的传统游戏。 规则:对于两个玩家:user 和 Iplayer 棋盘上有一定数量的棋子(早期版本只有 5) 第一个动作可以选择任意数量的棋子,但最小为 1,最大为棋子数减 1。...
《NIMGame: 探索古老的尼姆游戏与Java实现》 尼姆游戏,源于19世纪的欧洲,是一种简单的策略游戏,具有多种变体,深受数学爱好者和游戏设计者们的喜爱。在这个游戏中,两位玩家轮流从一堆大理石中取走一定数量的...
NimGame 尼姆游戏使用说明您将与Nim博士对战! 将会产生大量的弹珠,您的任务是拿走弹珠,直到一个玩家拿走最后一个弹珠为止。 最后一个弹珠的人输了! 您最多只能占用每回合剩余弹珠总数的一半。 举例:如果还有40...
NimGame game = new NimGame(10); boolean currentPlayer = true; // 假设当前玩家是先手 while (!game.isGameOver()) { if (currentPlayer) { System.out.println("Your move. Please enter the number of ...
这可以通过创建一个类 `NimGame` 来完成,其中包含私有变量如 `int piles[]` 表示石子堆。 2. **玩家选择**:游戏循环中,玩家需要选择一堆石子并决定取走的数量。可以使用 `Scanner` 类从用户那里获取输入,然后...
Swift游戏引擎是一款基于Nim编程语言开发的高效能游戏开发工具,特别设计用于快速构建高质量的2D游戏。Nim是一种现代、系统级的编程语言,具有C的性能,Python的简洁性和Ruby的表达力,这使得它在游戏开发领域具有...
《双人/单人对战数字抓宝山游戏》是一款基于Java编程语言开发的小型桌面游戏,也称为“nim game”或“拿石子游戏”。游戏的核心规则是:玩家(可以是两个人或一个人与计算机AI)轮流从一堆石子中拿走1到3个石子,...
1. 游戏界面:nim_tic_tac_toe可能使用nim的console模块来创建命令行界面,或者使用nim的GUI库如nimgame或nimterface来构建图形用户界面。 2. 游戏状态:游戏的状态管理包括跟踪当前的玩家、棋盘上的标记以及游戏...
Nimk Game是Nim游戏的一种变体,玩家可以同时从k堆石子中取走石子,每堆石子可以取不同的数量。每堆石子的SG函数是将石子数转换为二进制后,计算每一位上1的个数模(k+1)。若所有位上的结果都是0,玩家必败;否则,...
在这个"博弈论课件"中,我们主要会探讨三个经典的博弈论模型:巴什博奕(Nim Game)、威佐夫博弈(Wythoff's Game)以及尼姆博弈(Nim Game)。 首先,巴什博奕,也称为"取石游戏",是博弈论中的基础模型之一。在这...
巴什博奕(Bash Game)是一个简单的物品分割游戏,威佐夫博弈(Wythoff's Game)涉及两个玩家交替移除数字,尼姆博弈(Nim Game)则是在一堆或多堆物品中移除物品,目标是让对手无法操作。这些游戏的拓展,如k倍动态...
本文将结合这两门学科中的经典问题——卡特兰数以及几种常见的博弈论游戏,如Bash Game、Wythoff's Game和Nim Game等,来探讨它们的解法和应用。 #### 二、卡特兰数 卡特兰数是一组自然数序列,常出现在各种组合...