题目
你正在和朋友玩一个游戏:
桌子上有一堆石头,每一次你们都会从中拿出1到3个石头。
拿走最后一个石头的人赢得游戏。游戏开始时,你是先手。
假设两个人都绝对理性,都会做出最优决策。
给定石头的数量,判断你是否会赢得比赛。
举例:有四个石头,那么你永远不会赢得游戏。不管拿几个,最后一个石头一定会被你的朋友拿走。
思路解析
游戏开始时有一堆石子或其他物品,数量为n个。
两名玩家轮流从这一堆物品中取石子,每次取石子的数量最少为1个,最多为m个。
游戏的目标是成为最后一个取走石子的玩家,也就是说,谁在无法继续取石子(即石子已经被全部取完)的时候轮到自己,谁就输了。
巴什博弈的胜负关键在于初始石子数量n相对于每次最大可取数m的关系。如果(m+1)能整除n,则先手必败;反之,如果(m+1)不能整除n,则先手必胜
代码示例
def can_win_bash(self, n: int) -> bool:
# Write your code here
if n%4 == 0:
return False
else:
return True
标签:博弈,游戏,石子,石头,先手,return,巴十
From: https://www.cnblogs.com/shaoSaxon/p/18027982