Number Duel 数学
井字棋为什么一定平局(附证明)
大家都知道井字棋双方都发挥好的话一定是平局。但为什么?这个证明出乎意料地优雅,而且教给你组合博弈论的一个通用原理:当一个游戏小到可以完全分析时,结果就确定了——没有"运气"或"创造力"的空间。
数字说话
井字棋的3×3棋盘有9个格子。可能的游戏总数:
- 255,168 种不同的完整对局(计算每步不同走法)
- 26,830 种可能的棋盘状态
- 去掉对称等价后约 3,000 种
这些数字小到计算机可以检查每一个状态。结果是确定的:双方最优策略下,一定是平局。
证明:逐情况分析
证明的核心是分析先手第一步的所有情况。去掉对称性后只有3种不同的开局:
- 中心 — 最强开局
- 角 — 第二强
- 边 — 最弱
情况1:先手下中心
后手有两种选择:角或边。
后手下角:先手下对角。之后双方互相封堵,所有变化都导向平局。
后手下边:先手下相邻角可以制造叉(fork)威胁。但后手识别并封堵叉后,仍然平局。
情况2:先手下角
后手最优应对是占中心。之后先手通常占对角,制造叉的威胁。但后手只要用边(而不是角)来封堵,就能化解叉。
常见错误:后手跟着下角。这让先手在第三步占中心,在第5步形成无法封堵的叉。
情况3:先手下边
最弱的开局。后手占中心后,先手反而陷入被动。如果先手不够谨慎,后手甚至能反杀。
叉是核心概念
叉(fork)= 一步棋同时创造两条赢线,对手只能封堵一条。在井字棋中,叉就意味着赢。
井字棋一定平局的本质原因:棋盘太小,任何单方面的叉威胁都可以被预防性地封堵。
- 先手有先发优势,但不足以强制制造叉
- 后手有足够的封堵空间
- 游戏在叉形成之前就结束了
完整的博弈树
用现代计算机可以完全验证这个证明。极小化极大算法(minimax)评估每一个可能的状态:
- 从当前局面出发,考虑所有合法走法。
- 对每种走法,假设对手采取最优应对。
- 打分:赢 = +1,平 = 0,输 = -1。
- 选择保证最高分的手。
从空棋盘开始运行 minimax,返回值是 0(平局)。
幻方联系
这就是 Number Duel 玩家会觉得有趣的部分。上面的证明直接适用于Fifteen Duel,因为 Fifteen Duel 在数学上和井字棋完全等价。
把1-9排成幻方,每条线的和都是15:
| 8 | 1 | 6 |
| 3 | 5 | 7 |
| 4 | 9 | 2 |
从1-9中选3个不同数字使和为15的组合恰好有8种,和井字棋的8条赢线一一对应。
- 选数字 = 在井字棋里下棋
- 凑出和为15的三个数 = 连成一线
- 井字棋一定平局 = 凑15游戏一定平局
"占中心"变成"选5","封堵叉"变成"选那个阻止对手同时拥有两组和为15的数字"。
为什么这超出了游戏本身
井字棋的证明是博弈论的入门案例:通过穷举分析求解游戏。四子棋已被证明先手必胜,西洋跳棋已被证明平局。国际象棋理论上也能解,只是状态空间太大(约10^120)。