LeetCode 292. Nim Game

本文介绍了如何在LeetCode的292题Nim游戏中获胜。当桌上石头数量为4n+i(i=1,2,3)时,你可以在第一轮移除i个石头,使对手在4n的数量范围内无法赢得游戏,从而确保胜利。反之,如果石头数量为4n,无论你如何移除,对手总能通过策略使得剩余数量回到4n,导致你输掉游戏。" 64123009,1358276,Perl使用HTML::TreeBuilder::XPath解析HTML,"['Perl编程', 'HTML解析', 'XML技术', '数据处理']
摘要由CSDN通过智能技术生成

LeetCode 292. Nim Game


1. When you can win Nim

Say there are s = 4n + i (i = 1, 2, 3) stones on the table.

1.1 Initial state

Consider the case where n = 0, there are at most 3 stones on the table. You take the first turn to remove all the stones, then you win.

1.2 Deduction state

Suppose s = 4n + i (i = 1, 2, 3) stones on the table, you could we the game. 

Consider the case where k = n + 1. There are s = 4(n+1) + i (i = 1, 2, 3) stones on the table.

    1. You could always take the first turn to remove i stones. 

    2. Then the opponent take the next turn to remove whatever stones he wants.

The number of stones remaining is between (4n, 4n+4), which is 4n + i (i = 1, 2, 3). Thus when s = 4(n+1) + i (i = 1, 2, 3), you could win this game also.


2. When you will lose

Say there are s = 4n stones on the table. 

2.1 Initial state

Consider the case where n = 1, there are 4 stones on the table.

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.

2.2 Deduction state

Suppose s = 4n stones on the table, you will lose the game.

Consider the case where k = n + 1. There are s = 4n + 4 stones on the table. 

    1. Say you remove i stone(s) on your first turn.

    2. Your opponent could remove (4-i) stone(s).

The number of stones remaining is 4n, which we has proved that you will lose the game.


3. Conclusion

#(stones) = 4n + i (i = 1, 2, 3), you win.

#(stones) = 4n, you lose.


4. Source

class Solution(object):
	def canWinNim(self, n):
		return n % 4 != 0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值