在 Python 中查找启动游戏的可能动作数量的程序
假设Amal和Bimal正在玩游戏。他们有n个装有一种或多种巧克力的容器。这些容器从1到N编号,其中第i个容器有count[i]个巧克力。现在的游戏就像。第一位玩家将选择一个容器并从中取出一个或多个巧克力。然后第二个玩家将选择一个非空容器并从中取出一个或多个巧克力,就像这样他们交替玩。当其中一名玩家无法拿走任何巧克力时,他/她就输掉了比赛。如果首先轮到Amal,我们必须找出Amal可以采取多少种方式先走,从而使他始终获胜。
因此,如果输入类似于count=[2,3],那么输出将为1,因为最初的容器类似于[2,3]。他们可以这样玩
Amal从第二个容器中取出一块巧克力,所以目前[2,2]
Bimal从第一个容器中取出一块巧克力,所以目前[1,2]
Amal从第二个容器中取出一块巧克力,所以目前[1,1]
Bimal从第一个容器中取出一块巧克力,所以目前[0,1]
示例
让我们看看以下实现以获得更好的理解-
def solve(count):
tmp = 0
for c in count:
tmp ^= c
if not tmp:
return 0
else:
moves = 0
for c in count:
moves += (tmp^c) < c
return moves
count = [2, 3]
print(solve(count))输入
[2, 3]输出结果
1