十二块骨牌、每块五个小方格,拼起来能填满 6×10、5×12、4×15、3×20 —— 六十格恰好,一格不多。 这套玩具在英文里叫 pentominoes,1953 年由所罗门·戈龙布命名,1957 年经马丁·加德纳在《科学美国人》上推广, 中文俗称「伤脑筋十二块」。本站的每个数字都由程序亲手穷举,不是抄来的:12 种自由块、18 种单面块、63 种固定块, 以及四条矩形的完整拼法谱。第 4 关的 8×8 板还可以随手把中心空位挪到任意位置;求解器会把任意一块板的解尽量全部列出,逐个翻看。
点右侧任一块选中 → 在棋盘上点一下放下(点按处会被块身盖住,自动对齐,不必对准锚点); 在已放下的块上再点一下可取回。旋转/翻转作用于当前选中的块,换块后仍保留。目标:把整块板填满,十二块全用上。
每块都是 5 个小方格连成的「多联骨牌」(polyomino),且互不全等——五格恰好能连出 12 种不同形状。 朝向数指旋转与翻转算不同时该块有多少种摆法;手性指它的镜像不能靠旋转重合。
| 计数口径 | 允许的等价 | 五格块数 |
|---|---|---|
| 自由块 free | 旋转 + 翻转都算同一块 | 12 |
| 单面块 one-sided | 只允许旋转(镜像算另一块) | 18 |
| 固定块 fixed | 平移才算同一块 | 63 |
「自绘」模式下点格子可增删;格数须恰为 60(12 块 × 5 格)才谈得上拼满。
| 指标 | 值 |
|---|---|
| 格子数 | |
| 本质不同解(全量普查) | |
| 黑白差 d(棋盘染色) | |
| 着色不变量判决 |
| 板 | 原始解数 | 对称群 | 本质不同解数 |
|---|
「原始解数」把整体旋转/镜像后重复的拼法也各算一次;除以该板自身的对称群阶数,才是「本质不同」的拼法数。 两条口径都被程序算出,除法整除性也一并核对。
8×8 减去 4 格仍剩 60 格,正好够十二块用。洞开在哪儿?上面对局的第 4 关和这里的「8×8 选洞」预设都能随手换;程序把 49 个洞位全都算了一遍。
1953 年,美国数学家所罗门·戈龙布(Solomon W. Golomb)在一次演讲中被要求心算一个拼板问题的答案, 他把这套十二块命名为 pentominoes(希腊语 penta = 五),并由此开创了「多联骨牌」(polyomino)这一研究领域。 1957 年马丁·加德纳在《科学美国人》的数学游戏专栏介绍了它,玩具因此风靡世界——中文里它被叫作「伤脑筋十二块」。
十二块一共覆盖 60 格,因此只能填 60 格的板。四条矩形是最经典的靶子,它们的拼法数在文献里各有定论, 本站用自己写的求解器把它们全都重算了一遍:
「本质不同」是把整体旋转、翻转后重复的拼法视为同一张。3×20 只有 2 种本质不同的拼法, 而 6×10 多达 2339 种——同样是十二块,棋盘一变,答案的多少能差三个数量级。
把所有可能的位置写成一张「0-1 表」:每一行是一次「把某块放在某处」的候选,每一列是一个必须被恰好覆盖一次的要求 (十二个「每块用一次」+ 六十个「每格盖一次」)。于是拼板问题化为精确覆盖问题(Exact Cover): 挑出若干行,使每一列恰被覆盖一次。Knuth 在 2000 年提出的 舞蹈链(Dancing Links, DLX) 用双向十字链表让「试—撤」都变成常数时间的指针改写,至今仍是这类问题最快的实用算法之一。 本站页面里跑的求解器就是这个算法:它在您的浏览器里现场穷举,而不是查表。
把棋盘像国际象棋那样染成黑白。一块五联方盖住 5 格,多数是「3 黑 2 白」或「2 黑 3 白」——黑白差 ±1; 唯有 X 块(那个十字)盖住的是同色 4 格 + 异色 1 格,黑白差恒为 ±3。 十一块 ±1 加上 X 的 ±3,十二块合计最多只能凑出 ±14。于是: 任何 60 格的板,只要黑白差的绝对值超过 14,就一定拼不出来,连一次搜索都不必做。 求解器标签页里那行「着色不变量判决」就是现场算给您看的;「演示:不变量否决」按钮会造出一块黑白差 36 的板, 点一下计数——求解器连一个搜索节点都不会访问。
把一块五联方横竖各放大三倍(45 格),再从十二块里挑九块把它拼满——每块至多用一次,拼完恰好剩三块。 这是 R. M. Robinson 提出的经典问题,Golomb 在《Polyominoes》里介绍给世界:并非任意九块都能胜任,某块自己参不参与也影响答案。 本站求解器把十二块的三倍放大逐一算完:
逐块与文献(Golomb《Polyominoes》第 1 章;recmath「Pentomino Constructions」)完全吻合,合计 14 070 种 (旋转、镜像不计重复)。最容易的是 P 块 9144 种,最难的是 X 块只剩 20 种——X 那块十字形,恰是最难伺候的。
换个问法:不用别的块,只用九份自己拼自己的三倍放大——可以吗? 程序顺着「最左上的空格必须被覆盖」分支穷举,答案相当干脆:十二块里只有 I 与 P 可以。 其余十块里有九块连第一关都过不去:三倍放大板的某个角格,根本放不下这些形状的任何一块(一眼判决,无需搜索); 只有 U 块四角都放得下,却依然拼不出来(穷举证明)。这一问没有文献答案,是本站顺手算出来的。