PlayPendium
Conduit · 思考的食粮

数一数网格有多少种点亮方式

每日棋盘宽七块、高七块。看起来很小。可一旦你数一数它有多少种转法,这个数字就一点也不小了。

本文以英文撰写和编辑。此中文版本由机器翻译生成;凡涉及准确性之处,以英文原文为准。 阅读英文原文 →

01 · 干草堆有多大

4 的 49 次方

Conduit 中的每块图块都有四种可能的朝向:从原位置转动零、一、二或三个四分之一圈。1 让每日网格上的四十九个格子各自独立地从这四种朝向中选一种,棋盘不同状态的数量就是 449。写出来是 316,912,650,057,057,350,374,175,801,344,约 3.17×10²⁹ 种配置(即三十多万个“亿亿亿”),而游戏要你从中找出一种完全点亮且没有泄漏的。

为你生成谜题的打乱过程,会为每块图块随机选一个从零到三的四分之一圈转数。1 因此你面对的棋盘是从那个巨大空间中均匀抽取的,只减去游戏为避免给你发一张已经解开的网格而特意做的一项排除。1 暴力穷举根本不在考虑之列:游戏自己的测试注明,尝试每块图块的全部四种旋转是指数级的,因此它们只在九格或更少的玩具棋盘上运行穷举搜索。2

02 · 并非每次转动都不一样

对称性悄悄缩小了数目

那个标题数字算多了,因为有些图块根本不在乎你怎么转。十字形四边都有接口,四种朝向看起来完全一样;转动它什么也不会改变。直线只有两种不同的样子,水平和竖直,因为转半圈就与自身重合。只有不对称的形状——弯头、T 形和只有一个接口的端头——才真正拥有四种各不相同的朝向。3

按接口数划分的图块形状,以及真正不同的朝向有几种
形状接口不同朝向对称性
端头(节点/灯泡)14
直线22半圈
弯头24
T 形34
十字41完全

形状名称取自游戏的设计笔记;不同朝向的数目,是由四位接口掩码在所列旋转下保持不变推出的。3 有效搜索空间比 449 小,缩小的倍数恰好是这些逐块对称性的乘积,但只要棋盘上弯头和 T 形混合得足够多,它仍然是天文数字。

03 · 数答案,而不是数猜测

解开的布线究竟有多少种?

把问题反过来。忘掉你可能尝试的朝向,问一问已解开的棋盘本来可能有多少种。一张完成的 Conduit 网格是一组管道:它是连通的,电力到达每一块图块,并且没有多余的回路,因为生成器构建的正是一棵生成树:连通、无环、从电源到每个节点恰有一条路径。3 每一种这样的布线,确切地说,都是网格图的一棵生成树,其中顶点是格子,边是管道可以跨越的公共边界。

而生成树是可以精确计数的。基尔霍夫的矩阵树定理是 1847 年的成果,它指出任意图的生成树数目等于其拉普拉斯矩阵的任意一个代数余子式,这是一个可以在多项式时间内算出的行列式。4 对网格而言,这个数目随尺寸爆炸式增长:一个小小的 4×4 格点图就已有 100,352 棵生成树,此后更是猛烈攀升。其中每一棵都是一个合法、完全点亮的 Conduit 解。这个谜题之所以难,不是因为答案稀少,而是因为答案藏在数量大得多的“近似答案”人群之中。

已解状态可数且众多;打乱状态也可数,而且多得多。解题就是寻找一根你知道一定存在的针,因为游戏是故意把它藏在那里的。

04 · 为什么不能一个角一个角地解

局部规则,全局后果

你也许希望这个谜题可以拆解:先确定左上角,再确定它旁边的图块,然后整整齐齐地一路推进到对角。有时棋盘的某一段确实会这样被攻破。角上的图块只有两条边与邻居相接,所以它的接口受到很强的约束;边界上的端头图块只能朝内。这些被迫的走法提供了立足点。

但两个获胜条件并不会如此顺从地连成一串。无泄漏是局部性质,可以逐条边地验证。通电则不然:一块图块是否点亮,取决于一条一直延伸回电源、可能横跨整个棋盘的不间断连接链。3 你在一个角落做的改动,可能因为切断了供电的唯一路径,而让远处的一片区域陷入黑暗。正是这种耦合——每块图块的命运都可能系于一条贯穿整个网格的路线——让旋转谜题不至于沦为简单的记账,这也是为什么更广泛的 Net/Pipes 家族的求解器依赖约束传播和搜索,而不是简单地从左到右扫一遍。5

05 · 真正重要的数字

不是状态,而是步数

尽管状态空间无比广阔,Conduit 给你打分所依据的量却小而具体:你点了多少次。分数是 1000 − 4 × 步数 − 2 × 秒数,最低为零。3 任何一个棋盘都有一个理论上的最少旋转次数,即所有图块到达已解朝向所需最少四分之一圈数的总和,超出它的每一次多余转动都会让你失去四分,每闲置一秒失去两分。

所以真正的游戏位于两个庞大的事实和一个微小的事实之间。干草堆宽达 449 种朝向;针是网格众多的生成树;而你的任务,是用尽可能少的旋转(游戏中唯一合法的走法),从一个走到另一个。组合数学保证答案就在其中。计分规则则悄悄地激你:找到它,别绕远路。4

Sources & notes
  1. Conduit game engine: each tile has four rotation states; the scramble applies a random 0–3 quarter-turns per tile and nudges one tile if the scramble happened to land on a solved board. Read from the game's own source.
  2. Conduit engine test suite: its comments note that a full rotate-every-tile search is exponential, and its exhaustive brute-force solver is capped at boards of nine cells (n ≤ 9).
  3. Conduit design notes and game engine: tile shapes (end, line, elbow, tee, cross); the solved wiring is a spanning tree (connected, acyclic, leak-free); the local leak test versus the global power walk; and the scoring formula.
  4. "Kirchhoff's theorem" (matrix-tree theorem), Wikipedia, the number of spanning trees of a graph equals any cofactor of its Laplacian matrix, computable in polynomial time. en.wikipedia.org/wiki/Kirchhoff's_theorem. The 4×4 grid figure (100,352 spanning trees) is the standard enumerated value for the 4×4 grid graph.
  5. "Net" puzzle documentation, Simon Tatham's Portable Puzzle Collection, a Net solution is "an entirely connected network, with no closed loops," i.e. a spanning tree; the family is solved by search and constraint reasoning rather than a single local pass. chiark.greenend.org.uk/~sgtatham/puzzles/doc/net.html
Was this worth reading?
Play Conduit
PlayPendium · About · Contact · Privacy · Terms · Cookies · Accessibility · Copyright · Browse all games · Classic arcade games · © 2026