🎮 博弈论中的策略艺术:不能重复使用数字的“100游戏”
🧩题目背景
这个问题是“100游戏”规则的一个进阶版本。原始游戏规则是:
两名玩家轮流从 1 到 10 中选择一个整数,每个数可以重复选择,谁先使得累计和 ≥ 100,则获胜。
但我们现在讨论的是一个变体版本:
🚫 改动的规则:
- 玩家只能从一个整数池中抽取 1 到
maxChoosableInteger
(例如1~15)之间的任意整数; - 每个数字只能被选一次(不能重复使用);
- 两人轮流操作,累加选择的数字;
- 谁先使得累计和
≥ desiredTotal
,谁就赢; - 问题是:先手是否能在双方都采取最优策略的情况下稳赢?
这是一个典型的博弈论问题 + 状态压缩 + 记忆化搜索题目。
🎯问题形式化定义
给定:
- 一个整数
maxChoosableInteger
(可选最大数); - 一个整数
desiredTotal
(目标和);