一万道题到底需要什么
这份数据统计的是题目本身要求什么,不是解题者自称用了什么。评级器与游戏同源,种子固定,原始数据在文末。
先说结论
我们生成了一万道题,每一道都用游戏与练习纸背后的同一台评级引擎评过。有四件事和大多数教程给人的印象相反。
难度档描述的是技巧,不是难度。 游戏在「简单」给你的每一道题,都只需要唯一数就能推完——600 道里 600 道如此。「专家」的每一道都需要链或剑鱼,同样是 600 比 600。五档不是一条平滑的坡,是五个桶,一道题只会落进其中一个。
X-Wing 比教程说的更少见。 挖到 26 个提示的盘里,它出现在 3.5%。摩天楼是 10.1%,接近三倍,而在几乎所有教学顺序里,摩天楼都排在 X-Wing 后面。困难档的 600 道题里,只有 9 道以 X-Wing 为上限,其余 591 道需要更难的招。
有三招一次都没出现。 隐性三数组、XYZ-Wing、水母,在 5000 道题里出现的次数都是零。它们是真的,也教得会,但你在实战里不会偶然撞上它们。
提示数是个很弱的指标。 同样 26 个提示,58% 的题只需唯一数,另有 11% 十六种技巧全都推不完。提示数一样,活儿完全不一样。
这批数据怎么来的
评级器就是游戏里给每道盘面打分的同一份代码。它由便宜到贵依次尝试技巧——先唯一数,再数对与区块摒除,再 X-Wing,再摩天楼那一族,最后是链——然后记录解题过程中真正用到的最高一级。十六种技巧全部用完仍推不完的盘,标记为「无可推之技」,照样计数,不剔除。
三次采样,共用同一个种子,所以整个流程可以重跑:
- 3000 道,按游戏五个难度档各生成 600 道。是生成之后才评级,所以下表写的是
「这一档实际产出了什么」,不是「它声称会产出什么」。
- 5000 道,全部挖到 26 个提示,不设任何难度目标。这是自然出现率的样本——没有为了
让某个技巧出现而做过任何筛选。
- 2000 道,分布在 22 到 36 这八个提示数上,供最后一张表使用。
每个难度档实际给了你什么
| 档位 | 给定提示 | 平均步数 | 这道题实际需要什么 |
|---|---|---|---|
| 简单 | 42 | 1.0 | 唯一数 600/600 |
| 中等 | 30 | 5.5 | 数对、区块摒除 592/600;唯一数 8/600 |
| 困难 | 29 | 8.1 | 摩天楼一级 591/600;X-Wing 9/600 |
| 专家 | 26 | 12.8 | 链、剑鱼 600/600 |
| 大师 | 24.6 | 7.9 | 无可推之技 600/600 |
简单和中等两行在意料之中。困难那一行值得多看一遍。
一道题被评为困难,是因为它最高只用到 X-Wing。但 X-Wing 本身就稀缺:困难档产出的600 道题里,只有 9 道以 X-Wing 封顶。另外 591 道需要摩天楼、XY-Wing 或唯一矩形——这些在多数教程里属于更靠后的章节。
这不是档位设错了,是供给就这样。一道「唯一数、数对、X-Wing 就够,再难不会」的盘真的不多;当生成器挖到必须用一个有名有姓的招式的深度时,它撞见的通常是比较常见的那个。档位两者都接受,常见的那个靠频率赢。
落到盘面上就是:如果你能认出 X-Wing,却在摩天楼前面卡住,困难档会让你觉得忽难忽易。这不是你漏学了什么,这就是分布本身。
大师那一行是另一回事。那 600 道题每一道都击败了全部十六种技巧。这里的「大师」意思是评级器推不下去——题目需要猜、需要自己手工搭链,或者需要这套引擎还没实现的技巧。它是一个真实的类别,但它不是「专家的下一级」,是另一种墙。
每一招到底多常见
5000 道题,全部挖到 26 个提示,不做其他筛选。一招只要在解题路径里出现过就算,不要求它是最难的那一步。
| 技巧 | 引擎等级 | 出现的盘数 | 占比 |
|---|---|---|---|
| 隐性唯一数 | 1 | 4784 | 95.7% |
| 唯一候选数 | 1 | 4248 | 85% |
| 显性数对 | 2 | 1513 | 30.3% |
| 区块摒除 | 2 | 1153 | 23.1% |
| 隐性数对 | 2 | 702 | 14% |
| 行列摒除 | 2 | 513 | 10.3% |
| 摩天楼 | 4 | 506 | 10.1% |
| XY-Wing | 4 | 412 | 8.2% |
| XY 链 | 5 | 343 | 6.9% |
| W-Wing | 5 | 276 | 5.5% |
| X-Wing | 3 | 176 | 3.5% |
| 唯一矩形 | 4 | 116 | 2.3% |
| 显性三数组 | 2 | 111 | 2.2% |
| Swordfish | 5 | 16 | 0.3% |
| 隐性三数组 | 2 | 0 | 0 |
| XYZ-Wing | 4 | 0 | 0 |
| Jellyfish | 5 | 0 | 0 |
先看表尾。隐性三数组、XYZ-Wing、水母:零、零、零。 不是少,是没有。一份教程如果花一整章讲它们却不说这件事,它描述的是这个提示数下基本不会出现的题。
剑鱼好一点,0.3%——5000 道里 16 道。站上有一张剑鱼练习纸,做它时用的题库比其他五张大得多,因为供给真的就这么薄。
再看顺序。摩天楼 10.1%,大约是 X-Wing(3.5%)的三倍;XY-Wing 8.2%,也是两倍多。几乎所有教学顺序都把 X-Wing 排在第一个,因为它讲起来最简单——一个数字、四个格子、一个矩形。讲起来简单和遇得上是两件事,而通行顺序优化的是前者。
这不是说该改教摩天楼。X-Wing 仍然是单数字模式最合适的入门,它只是没有自己的名气所暗示的那么常用。
提示越少就越难吗
不是。下面这张表就是理由。每一行是独立的一批,生成方式完全相同,只差挖到多深。
| 给定提示 | 只需唯一数 | 需要摩天楼以上 | 平均步数 |
|---|---|---|---|
| 22 | 43.6% | 39.6% | 6.0 |
| 24 | 42.8% | 39.2% | 5.7 |
| 26 | 58.8% | 26.8% | 4.7 |
| 28 | 72.8% | 20% | 3.4 |
| 30 | 83.6% | 11.2% | 2.6 |
| 32 | 93.2% | 4.8% | 1.7 |
| 34 | 96.8% | 2.8% | 1.5 |
| 36 | 98.4% | 1.6% | 1.3 |
趋势是有的——22 个提示的盘大约 40% 需要高级技巧,36 个提示的盘约 2%。但这个趋势噪声大到没法当难度尺用。26 个提示时,最常见的结果仍然是「只要唯一数」。两道给定数相同的题,实际等级可以差四级。
原因是结构性的。挖洞是拿走格子,它不决定剩下的盘需要什么。一道题需不需要摩天楼,取决于恰好留下了哪些格子,而不取决于留了几个。提示数描述的是洞的大小,不是活的形状。
这也是游戏要「生成完再评级」、而不是直接相信档位的原因。档位只负责挑目标,评级器负责说最后出来了什么。
这份数据怎么用
选难度时:把档位当成「我要练哪一招」,不是「这局要多久」。简单是唯一数练习,中等是数对与区块摒除,困难是摩天楼那一族加偶尔的 X-Wing,专家是链,大师是引擎推不完的题。
学技巧时:表尾那两行——剑鱼和三个零——在你稳定认出摩天楼和 XY-Wing 之前不值得花时间。不是因为难,是因为遇不上。把常见的练熟,少见的自己会来找你。
看别人的技巧排序时:分辨那个顺序是按「概念上好不好讲」还是按「实战里多常见」。绝大多数是前者,而且通常也说得明白。只要别把「第三个讲的」当成「第三常见的」。
这份数据证明不了什么
样本是生成的,不是从出版物里收集的。报纸的「困难」不等于本站的「困难」,这份数据也说明不了某一本书或某个 App 的技巧分布。这些数字描述的是这个生成器在这些挖洞深度上产出了什么。
5000 道那个样本里,约 11% 是引擎没推完的盘。对这些盘,解题路径停在评级器卡住的地方,它后面本会需要的技巧没有被计入。这会让表尾那些稀有项被轻微低估——也就是说剑鱼的真实频率只会比 0.3% 高一点,不会更低。
单次运行的估计带抽样误差。5000 道样本下,一个 3.5% 的技巧误差约为 ±0.5 个百分点。三个零是唯一抽样误差解释不了的结果:三招、5000 道、零次。
原始数据
全部在一个文件里,包含上表用到的每一项分样本统计。
- stats.json——每个计数、种子、样本量
- technique-rarity.csv——单独的出现率表
想自己复核就跑 node tools/gen-stats.js,种子是固定的,跑出来是同一组数。