最难的数独,难在哪

作者: , 共 3396 字

AI 时代,大脑容易退化。常常玩点数独有助于保持大脑运转。

1、一、我玩数独的体会

在 stream 上有两款数独,我都玩通了。一款是 Sudoku Universe,操作上省心很多——它自动显示备选项,会把不能填的数字过滤掉,不会犯错误;

图片 1

另外一款,经典数独,不给任何辅助,玩一关的时间要长得多。

图片 2

我一般就两步:先推理,再猜。推理推不动了,就猜。硬憋着推理往往更慢——难的题基本不可能纯靠推理一路推平。但猜也有讲究:要挑那种一填下去就能把别的位置定住的地方猜,否则需要连续猜会难很多。

我做的最难的一个题,猜了四个格子才完成。其中有二次还猜错了需要回退。

玩了这么多,对什么数独最难很感兴趣。让 AI 查了一下,就是这篇文章。

2、二、提示数最少: 17 个

最直观的想法是:初始给的数字越少越难。顺着这个思路问下去就是——最少能给几个数字,还能保证唯一解?

2012 年,三位爱尔兰数学家花了 710 万 CPU 小时证明:16 个提示数不可能有唯一解。所以下限是 17 个。目前已知的非等价 17 提示题有 49151 道。

图片 3

提示数少,不等于难。比如上面这个例子其实非常容易,只用简单推理就能一路填完。

3、三、平凡化率:给两个媒体口径的「世界最难」

那什么才叫难?数独社区发明了一个指标叫平凡化率,直觉理解就是:我随便挑两个空格、把正确答案填进去,剩下的用简单方法就能解出来的可能性有多大?

具体做法:数出题目所有空格,把两两组合全列出来(大概一千多组);每一组都试一次——把这两格的答案直接填上,看剩下的是不是基础推理就能推完。能推完的组合数 ÷ 组合总数 = 平凡化率。这个比例越高,说明捷径出口越多,题越容易;比例越低,说明从哪儿下手都救不了场。

芬兰数学家 Arto Inkala 有两道题被媒体称作「世界最难」,它们正好是这个指标的代表。

AI Escargot ( 2006 ): AI 是他姓名首字母, escargot 是法语「蜗牛」——给定的数字在盘面上排成蜗牛壳的形状。23 个提示数,平凡化率 5.0%。

图片 4

Inkala 2012:六年后他又发了一道,设计耗时三个月, Daily Telegraph、The Sun 都报道过。媒体说它给了 23 个提示数,我数下来是 21 个。平凡化率 4.5%( 1770 组里只有 79 组能两格破题)。流传最广的一条记录是有人试了 153 次、前后两个月才做出来。

图片 5

补充一句:这个指标还能再往下走。数独程序员 David Filmer 造过一批纯为「折磨求解器」的题,编号 Unsolvable ,Unsolvable #28 的平凡化率只有 0.53%——1711 组两格组合里,只有 9 组能让你「填两格就通关」。我实测:基础推理在它上面一格都推不动。

图片 6

4、四、SE 评分:取解题路上最难的那一步

上面那个指标是「有多少捷径」。另一个更通用的评分叫 SE 评分( Sudoku Explainer Rating ),思路完全不同:它把解题过程一步一步走一遍,看这条路上最难的那一步有多难,取那个难度值当分数。

注意它量的是门槛,不是步数:做 100 步隐性唯一和做 10 步隐性唯一,分数一样。每个技巧有个固定分值,逐级往上:

分值
需要的技巧
1.0
单元里最后剩下的那个空格
1.2–1.5
隐性唯一(宫 1.2 / 行列 1.5)
2.3
唯一候选
2.6–2.8
指向数对、声明(Pointing、Claiming)
3.2–3.8
鱼与翼(X-Wing 3.2、Swordfish 3.8)
4.5–7.2
链(XY-Chain、AIC)
8.5–10.5
强迫链(每嵌套一层 +0.5)
11.9
封顶(4 层嵌套强迫链 + 链条长度补偿)

最后一行的公式来自 Sudoku Explainer 源码:难度 = 8.5 + 0.5× 嵌套层数,再加链条长度补偿。报纸上的题一般在 3.0 以下。

给个具体例子就明白了。实测 Escargot :基础推理只能填 1 格 就卡住(还剩 57 格);此时盘面上候选最少的格是 r2c3 ,它有两个候选( 4 和 6 )——这种「二选一」的格子正是高级技巧的入口,下一步必须上阵列或链,所以它的 SE 评分远高于报纸题。

Inkala 2012 更极端:基础推理一格都推不动,还剩 60 格,候选分布是 25 个格有 4 个候选、20 个格有 5 个候选——盘面又空又乱,直接跳到链条级别。

那 11.9 分长什么样?看这道 Golden Nugget, 2007 年 1 月由网友 Tarek 发布,被很多来源认为是世界最难:

图片 7

21 个提示数,看着不吓人,但基础推理在它上面一格都推不动。SE 要解它,得动用 4 层嵌套强迫链,把链路长度也折算进去,才刚好够到 11.9。顺便说一句:11.9 至今仍是 SE 的封顶分,社区总共只找到 10 道达到这个分数的题。

SE 评分有个天花板问题:封顶 11.9。达到 11.9 的题有一大堆,分不出高下。所以后来有人另立尺子——下一节说。

5、五、试错深度:最直观的尺子

我觉得最直观的衡量方式是这个:先用简单推理填,填不动了就猜一个,再简单推理,再猜一个,这样循环下去,需要多少层才能把整题推平? 这比前面那些指标都更贴近人的实际感受。

但要小心,这个「层数」有两种算法,差别很大:

● 最优层数:假设有一个先知,每次都猜在最优位置上。这是理论下限。

● 单路径层数:不许回头,一路猜下去,一般是猜候选项最少的格子。这更像普通玩家,你按一个固定的策略走到底,就是这么多层。

我用求解器把上面几道题都量了一遍(猜测时都猜正确答案,即模拟「手感好」的玩家):

题目
提示数
最优层数
单路径层数
17 提示题
17
0
0
AI Escargot
23
2
8
Inkala 2012
21
2
10
Unsolvable #28
22
2
13
Unsolvable #49
22
3
12
Golden Nugget
21
2
6
Platinum Blonde
21
3
8

两道难题的层数相差 4–6 倍,差别就在「能不能回头」。

这些难题猜一格之后,基础推理往往只能再推进一格就又卡住了。这就是它们和普通难题的本质区别——普通难题你猜对一个关键格,整盘会连锁崩塌;而这几道题,你猜对一格,盘面纹丝不动。

这个直觉和「猜要挑能定住全局的地方」完全一致:猜的价值不在于猜对,而在于猜完之后能推出多少。平凡化率量的正是这件事,试错深度量的则是要重复多少次。

6、六、混沌尺度:把解题过程当成物理系统

2012 年,两位物理学家在 Nature 子刊发了一篇《数独中的混沌》:他们把数独转成一组连续时间的微分方程,用解微分系统的方式解题,然后量这个系统收敛要花多久——收敛越慢,说明盘面越「纠缠」。这个指标叫 η ,思路和地震的里氏震级一样:容易的题 0<η≤1 ,中等 1<η≤2 ,难 2<η≤3 ,超难 η>3。

他们测了五道公认最难的题( Platinum Blonde、Golden Nugget、Red Dwarf、coly013、tarx0134 ),其中最难的叫 Platinum Blonde,η = 3.5789,是目前测到的最高值。论文顺便给了它的其他参数:转成 SAT 问题后 257 个变量、2085 条约束; 21 个提示数,却比 34 个提示数的简单题难得多。

图片 8

顺带说一句它的来历:这道题 2009 年 1 月由一位网名 eleven 的数独设计者发在数独玩家论坛上。它特别能说明「提示数少不等于难」这条规则的反面——21 个提示数听起来很「宽松」,难度却是超难级。

7、七、所以,哪种「最难」?

● 提示数最少: 17 个,但这类题不一定难;

● 平凡化率最低: Unsolvable #28 , 0.53%,几乎没有捷径出口;

● SE 评分最高: 11.9 封顶, Golden Nugget、Platinum Blonde 都在这一档;

● 混沌尺度最高: Platinum Blonde , η=3.5789 ,物理意义上收敛最慢;

● 试错深度最深:最优 2–3 层、单路径 6–13 层——差距全看你能不能回头。

上面这些例子,大家可以尝试挑战一下 :)

Q. E. D.

9 月 19 日,张君实(君宝)参加延庆东王庄三界越野挑战赛的 10 公里组(三界 · 寻迹),枪时 1:29:14 ,净时 1:29:04 ,男子第 6 名,如果只算青少年的话,应该是第 3 名。
IT » 数独, AI, 网站, 个性化软件
欢迎来到个性化软件时代。每个人都可以自己写最适合自己操作习惯的软件。下面就是一个案例。