1

我正在尝试这个关于位操作的问题是通过这个来解决的:

数字的美是该数字中设置的位数。A 和 B 开始玩游戏,棋盘上写着数字 N,轮到移动的玩家走到棋盘上写一个新的数字 NK,其中 k<=N,K 的美为 1。这也很重要NK的美必须等于N的美。最后成功完成他的动作的玩家赢得了比赛。

他们都以最佳方式玩游戏。

PS我不是在这里寻找代码。我想知道如何解决这个问题?

4

1 回答 1

1

这是一个典型的博弈论问题。玩家发挥最佳意味着任何玩家都会采取行动,从而最大化获胜的机会(考虑到当玩家 2 获得机会时,他也愿意这样做)。

现在在这种情况下,让我们看看允许的移动:

根据需要,数字的美应该保持不变并且k应该具有美感,1 仅设置 1 位(例如00000100

为了进一步说明,让我们假设我们只有 8 位数字。

如果您仔细观察,N为了保持相同的美感,设置的位位于具有 ak的(其中一个)索引处,并且在左侧与其相邻。我举个例子:N01

让我们说N01010001。现在 k 可以是00100000, 00001000. 如果你看到N-k的美丽仍然是一样的。操作后,您会注意到它1向右移动,因此0向左移动。例如当N=01010001k=00100000 (N-k) = 00110001

游戏的结束位置也将是所有0's都在左边,并且所有1's都在右边(00000111)。给定一个数字,您可以计算可能的移动次数N。如果是奇数,则开始的玩家获胜,否则他输了。

现在计算这种移动的数量是简单的枚举问题。

于 2013-10-02T08:07:38.767 回答