在 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