【智力题】拿硬币(数数字)、游戏

神奇的取模运算。

  • 设计一种策略,保证自己 100% 能赢;
  • 确定好自己的策略之后,每一次要视对方的行为而确定自己的拿取情况;

1. 什么是拿硬币(数数字)游戏?

拿硬币(数数字)是两个人玩的游戏,要求每个参加者轮流拿走若干硬币,谁拿走最后一枚硬币,谁就算赢。比如,桌上放有 15 枚硬币,A、B 为游戏的参与者,规则是每人每次最少拿 1 枚硬币,最多拿 5 枚硬币。

规律的总结:

  • (1)被除数为硬币的个数;
  • (2)除数为规则中允许的最少硬币数+最多硬币数(1+5=6);
  • (3)如何保证自己能赢?
    • (1)除尽的情况下,后拿者赢;(后者每次拿的个数都是除数 - 前者拿的个数
    • (2)除不尽的情况下,先拿者赢;(先拿者先拿出被除数除数余数,然后的每一个回合,拿出除数-前者拿出的个数

2. 拿火柴

火柴第一堆3根,第二堆5根,第三堆7根,每次可以取任意一堆的任意数量,谁拿最后一根谁输。

  • 先拿;
  • 先拿第一堆 1 根;

你可能感兴趣的:(智力题)