# 8. 轮流拿石子
描述:桌上有一堆石子,两位玩家轮流从中拿取石子,每次至少拿1颗,最多拿3颗。拿到最后一颗石子的人获胜。请问先手是否有必胜策略?如果有,策略是什么?
# 分析问题
游戏规则:
- 两名玩家轮流拿石子。
- 每次可以拿 1~3 颗。
- 拿到最后一颗石子的人获胜。
- 先手玩家希望确保自己赢得游戏。
核心目标:
- 找出 先手是否存在必胜策略。
- 如果有,如何操作 保证必胜。
# 基本分析
小规模情况分析
- 1 颗石子:先手直接拿走,胜利 ✅
- 2 颗石子:先手拿走全部,胜利 ✅
- 3 颗石子:先手拿走全部,胜利 ✅
- 4 颗石子:无论先手拿 1、2 或 3 颗,后手总能拿到最后一颗,因此先手 必败 ❌
更大规模
- 5 颗石子:先手拿 1 颗,剩下 4 颗,后手进入 必败 状态,先手 必胜 ✅
- 6 颗石子:先手拿 2 颗,剩下 4 颗,后手进入 必败 状态,先手 必胜 ✅
- 7 颗石子:先手拿 3 颗,剩下 4 颗,后手进入 必败 状态,先手 必胜 ✅
- 8 颗石子:无论先手拿 1、2、3 颗,后手都可以让剩余的石子变成 4 颗(必败状态),所以 先手必败 ❌
由此可以发现:
- 如果石子数是 4 的倍数,则 先手必败。
- 如果石子数 不是 4 的倍数,先手总能通过拿取合适数量,使对手进入 4 的倍数状态(必败状态),从而 保证自己获胜。
# 结论与策略
- 必胜条件:如果石子总数 不是 4 的倍数,先手可以 控制局势,让后手进入 4 的倍数状态,从而获胜。
- 必败条件:如果石子总数 是 4 的倍数,先手无论如何操作,都会让对手进入 非 4 的倍数状态(必胜),所以必败。
- 具体策略:
- 若石子数为 4 的倍数,无论怎么拿都会输,先手必败。
- 若石子数不是 4 的倍数,先手应该:
- 先拿走 使剩余石子数变成 4 的倍数。
- 例如,石子总数 N % 4 = X(1≤X≤3),先手应该 拿 X 颗,让剩余的石子变成 4 的倍数,使后手进入必败状态。
# 示例
- N = 10:先手应该拿 2 颗,剩下 8 颗(4 的倍数),后手必败 ✅
- N = 12:先手应该拿 0 颗、1 颗、2 颗、3 颗,无论如何都避免不了后手会进入一个非 4 倍数状态,先手必败 ❌
- N = 17:先手应该拿 1 颗,剩下 16 颗(4 的倍数),后手必败 ✅
# 相关面试题
- 如果每次可以拿 1~4 颗石子,策略如何变化?
- 如果游戏变成拿到最后一颗石子的人输,策略如何变化?
- 如果增加第三名玩家,游戏策略会发生怎样的变化?
这道题属于 博弈论 + 数学归纳法,考察 规律发现、数学推导、策略思维。