The Winnability of Klondike Solitaire and Many Other Patience Games

本文介绍了一种名为"Solvitaire"的通用人工智能程序,它利用深度优先搜索及多种 AI 技术,成功以高精度确定了包括“纸牌接龙”在内的 35 种单人纸牌游戏中 73 个变体的可赢率,显著提升了该领域的计算精度并填补了多项知识空白。

Charlie Blake, Ian P. Gent

发布于 2026-03-04
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这是一篇关于**“纸牌接龙(Solitaire)到底有多少局能赢”的学术论文。为了让你轻松理解,我们可以把这篇论文想象成一次“用超级计算机给所有纸牌游戏做体检”**的大工程。

1. 核心问题:我们真的知道能赢吗?

想象一下,你坐在电脑前玩 Windows 自带的“克朗代克(Klondike)”接龙。你经常觉得:“这局牌发得真烂,肯定赢不了。”或者“这局牌太好了,闭着眼都能赢。”

但过去,数学家们一直不知道:在随机发牌的情况下,到底有多少比例的牌局是“理论上可以赢”的?
这就好比问:“如果你随机买一张彩票,中奖的概率是多少?”以前大家只能猜,或者只能算出大概的范围。对于克朗代克接龙,这个“能赢的概率”甚至被称为**“应用数学界的尴尬”**,因为玩了这么多年,大家居然算不准。

2. 主角登场:Solvitaire(解牌机)

作者们(Charlie Blake 和 Ian Gent)没有为每一种纸牌游戏单独写一个程序,而是发明了一个**“万能解牌机器人”**,名字叫 Solvitaire

  • 它的超能力: 它就像一个**“全知全能的侦探”**。你只需要给它一张“规则说明书”(用一种简单的 JSON 语言写成的),它就能读懂任何纸牌游戏的玩法。
  • 它的任务: 它不是像人类那样“试着玩”,而是穷尽所有可能性。它会像疯了一样,在几秒钟内模拟几百万种走法,看看这副牌到底有没有一条路能通向胜利。
  • 它的技巧: 为了跑得更快,它用了很多 AI 技巧:
    • 记忆宫殿(转置表): 它记得自己走过的路,如果发现自己又回到了刚才的某个状态,它就不会再傻乎乎地重走一遍。
    • 对称性打破: 如果桌子上的四个空位长得一模一样,它知道把红桃 A 放在第一个空位和放在第二个空位其实是一样的,所以它只试一种,省下一半力气。
    • ** dominance(优势策略):** 这是它最聪明的地方。比如,如果一张牌能直接放到“基础区”(Foundation),它通常就会直接放,因为它证明:“只要这步棋能赢,那么现在就走这一步绝对不会输。” 这就像下棋时,如果有一步棋能直接吃对方老帅,你就不会犹豫去走别的棋。

3. 惊人的发现:我们算得有多准?

以前,对于克朗代克接龙(Windows 里那个),大家只知道大概能赢 80% 左右,误差很大(比如 ±3%\pm 3\%)。这就像说“明天降雨概率是 80%,误差 3%",听起来很模糊。

Solvitaire 做到了什么?
它把误差缩小到了 ±0.08%\pm 0.08\%

  • 以前的结论: 克朗代克接龙能赢的概率大约是 81.9%(误差很大)。
  • 现在的结论: 在“聪明版”(即你知道所有背面牌是什么,相当于开了上帝视角)的规则下,克朗代克接龙能赢的概率是 81.945%,误差极小。
  • 意义: 这就像以前我们说“地球到月球的距离大概是 38 万公里”,现在我们能精确到“是 384,400 公里,误差只有几米”。这是30 倍的精度提升!

4. 他们研究了什么?

他们不仅研究了 Windows 里的接龙,还像**“游戏测试员”**一样,测试了 73 种 不同的纸牌游戏变体,包括:

  • FreeCell(空当接龙): 几乎 100% 能赢(除了极少数特例)。
  • Spider(蜘蛛纸牌): 能赢的概率也很高。
  • Canfield: 以前有人猜能赢 71%,现在算出来是 71.245%。
  • 甚至他们自己发明了一些新规则,看看如果改变规则(比如一次发几张牌、能不能把牌拿回来重发),胜率会怎么变。

一个有趣的发现:
如果你把克朗代克接龙的规则改得“更严”(比如一次只能发 1 张牌,或者不能把牌拿回来),胜率会暴跌

  • 一次发 3 张(标准版):胜率约 82%。
  • 一次发 7 张:胜率直接掉到 23%。
    这说明,发牌的方式对运气的影响巨大

5. 为什么这很重要?

  • 填补空白: 以前很多纸牌游戏的胜率是未知的,或者只有爱好者猜的。现在有了科学数据。
  • 发现 Bug: 在测试过程中,Solvitaire 发现了一些以前其他解牌程序里的错误。就像两个侦探互相检查,发现对方算错了,然后修正了历史数据。
  • 致敬历史: 论文开头提到,蒙特卡洛方法(一种用随机模拟来解决问题的数学方法)的发明者 Stanislaw Ulam,当年就是在病床上玩纸牌时,为了算出“能赢的概率”才发明了这种方法。这篇论文用现代 AI 技术,终于完美回答了 Ulam 当年那个未解的谜题。

6. 总结:这就像什么?

想象一下,纸牌游戏是一个巨大的**“迷宫”**。

  • 以前的玩家和数学家: 只能站在迷宫口,凭感觉猜:“我觉得大概有一半的路是通的。”
  • Solvitaire: 是一个拥有无限体力的机器人。它把迷宫里的每一条路都走了一遍。如果有一条路能通到终点,它就记录“能赢”;如果所有路都走不通,它就记录“必输”。
  • 结果: 它画出了一张精确到小数点后三位的地图,告诉我们:在这个迷宫里,81.945% 的入口是可以走通的。

一句话总结:
这篇论文用一台超级聪明的“万能解牌机器人”,把纸牌游戏从“凭运气猜”变成了“精确计算”,不仅算出了 Windows 接龙的真实胜率,还顺便修正了数学界几十年的“尴尬”数据。

在收件箱中获取类似论文

根据您的兴趣定制的每日或每周摘要。Gist或技术摘要,使用您的语言。

试用 Digest →