文巾解题 292. Nim 游戏
生活随笔
收集整理的這篇文章主要介紹了
文巾解题 292. Nim 游戏
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1 題目描述
2 解題思路
這其實(shí)是一個(gè)腦筋急轉(zhuǎn)彎一樣的題目。先給出結(jié)論吧:如果堆中石頭的數(shù)量?n?不能被?4?整除,那么你總是可以贏得 Nim 游戲的勝利。
下面是推導(dǎo)部分:
讓我們考慮一些小例子。顯而易見的是,如果石頭堆中只有一塊、兩塊、或是三塊石頭,那么在你的回合,你就可以把全部石子拿走,從而在游戲中取勝。
而如果就像題目描述那樣,堆中恰好有四塊石頭,你就會(huì)失敗。因?yàn)樵谶@種情況下不管你取走多少石頭,總會(huì)為你的對(duì)手留下幾塊(數(shù)量小于4,可以一趟拿走),使得他可以在游戲中打敗你。
因此,要想獲勝,在你的回合中,必須避免石頭堆中的石子數(shù)為 4 的情況。
同樣地,如果有五塊、六塊、或是七塊石頭,你可以控制自己拿取的石頭數(shù),總是恰好給你的對(duì)手留下四塊石頭,使他輸?shù)暨@場(chǎng)比賽。
?
但是如果石頭堆里有八塊石頭,你就不可避免地會(huì)輸?shù)?#xff0c;因?yàn)椴还苣銖囊欢咽^中挑出一塊、兩塊還是三塊,你的對(duì)手都可以選擇三塊、兩塊或一塊,以確保在再一次輪到你的時(shí)候,你會(huì)面對(duì)四塊石頭。
class Solution:def canWinNim(self, n: int) -> bool:return(not n%4==0)?
總結(jié)
以上是生活随笔為你收集整理的文巾解题 292. Nim 游戏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文巾解题 523. 连续的子数组和
- 下一篇: 博弈论笔记1:囚徒困境与纳什均衡