📜  谜题 14 | (2人硬币游戏的策略)

📅  最后修改于: 2022-05-13 01:57:25.949000             🧑  作者: Mango

谜题 14 | (2人硬币游戏的策略)

谜题考虑一个两人硬币游戏,其中每个玩家 A 和玩家 B 一个接一个地轮到。有一排偶数硬币,轮到他/她的玩家可以从该排的两个角落中的任何一个角落中挑选一枚硬币。收集价值更高的硬币的玩家赢得游戏。为第一个回合的玩家(即玩家 A)制定策略,使他/她永远不会输掉游戏。

请注意,最多选择两个角的策略可能不起作用。在以下示例中,第一个玩家玩家 A 在使用策略最多选择两个角时输掉了比赛。

例子:

Initial row:  18 20 15 30 10 14
Player A picks 18, now row of coins is

After first pick:  20 15 30 10 14
Player B picks 20, now row of coins is

After second pick:  15 30 10 14
Player A picks 15, now row of coins is

After third pick:  30 10 14
Player B picks 30, now row of coins is

After 4th pick:  10 14
Player A picks 14, now row of coins is

Last pick:  10 
Player B picks 10, game over.

The total value collected by Player B is more (20 + 
30 + 10) compared to first player (18 + 15 + 14).
So the second picker, Player B wins. 

解决方案
这个想法是计算所有偶数硬币和奇数硬币的价值总和,比较这两个值。如果偶数硬币的总和更高,则首先移动的玩家始终可以确保其他玩家永远无法选择偶数硬币。类似地,如果奇数硬币的总和更高,他/她可以确保其他玩家永远无法选择奇数硬币。所以这里是赢得比赛或获得平局的正确算法的步骤:



  • 步骤1:计算偶数位(第2、第4、第6等)所有硬币的总和。让总和为“偶数”。
  • 步骤 2:计算奇数位(第 1、第 3、第 5 等)中所有硬币的总和。令总和为“奇数”。
  • 第 3 步:比较 EVEN 和 ODD 的值,这就是第一个玩家的方式,这里玩家 A 必须开始选择。
    1. 如果(偶数 > 奇数),从右上角开始选择并选择所有偶数放置的硬币。
    2. 如果(偶数 < 奇数),从左角开始选择并选择所有奇数放置的硬币。
    3. if (EVEN == ODD),只选择奇数放置的硬币或只选择偶数放置的硬币将抛出平局。

示例:假设您有以下几行硬币:

18 20 15 30 10 14

偶数硬币: 20, 30, 14
奇数硬币: 18、15、10
这些位置是固定的,与选择的选择必须从左侧还是右侧开始无关。

第 1 步:所有偶数硬币的总和 = 20 + 30 + 14 = 64
第 2 步:所有奇数硬币的总和 = 18 + 15 + 10 = 43
第 3 步:比较偶数和奇数放置的硬币,其中 EVEN > ODD

因此,玩家 A 必须从右侧开始选择,每次都选择所有偶数放置的硬币(这里是 14、30 和 20)。所以第一个选择者,玩家 A 选择 14。 现在,无论第二个玩家 B 是从左侧开始选择,即 18 还是从右侧开始选择,即 20,偶数放置的硬币,即 14、30 和球员 A 预定了 20 人。因此,无论出现任何情况,先选球员的球员 A 都将赢得比赛。

以下是玩家 B 选择的两种情况的说明:
情况 1:当玩家 B 从左角开始捡球时。

情况 2:当玩家 B 在玩家 A 之后开始从右角挑球时。