💡 关灯游戏 Lights Out — 在线益智解谜
经典关灯游戏(Lights Out),点击任意格子会同时翻转它自身与上下左右四格的亮灭状态,目标是把所有灯全部关掉。
支持 3×3 ~ 6×6 四种规格与三档难度,题目由全灭状态反向随机点击生成,保证 100% 有解;
内置基于 GF(2) 高斯消元的求解器,可给出提示与最少步数的完整解法演示。
① 游戏设置
② 游戏面板
点击格子,翻转它和上下左右四格,把所有灯关掉即获胜。
③ 本机最佳纪录(当前规格)
纪录保存在本机浏览器 localStorage,不会上传服务器。使用「提示」或「一键求解」通关的局不计入最佳纪录。
🎮 玩法说明与实用技巧
- 基本规则:点击任意格子,该格与上下左右相邻格(边角处相邻格更少)同时亮灭反转,把全部灯关掉即通关。
- 顺序无关:点击顺序不影响最终结果,只有「每格被点了奇数次还是偶数次」有意义,所以同一格点两次等于没点。
- 照亮追逐法(Chase the Lights):从第二行开始,若上一行某格是亮的,就点它正下方那格,逐行向下推进,最后只剩最后一行有灯。
- 看最后一行:追逐完成后,最后一行的亮灯图案唯一决定了第一行应该怎么点。5×5 共有 8 种可解的末行图案,记住对照表就能秒解。
- 先想再点:乱点会让局面变复杂。若卡住,用「重置本局」回到初始局面重新规划,而不是继续试错。
- 难度提示:随机打乱步数越多不代表越难解,因为重复点击会互相抵消;真正的难度来自最少解步数,面板上的「理论最少步」即为该值。
📐 数学原理:GF(2) 线性方程组与高斯消元
- 把 n×n 棋盘的每一格看作一个变量 x_j ∈ {0,1},表示「第 j 格是否被点击」(点两次等于不点,所以只需模 2 记录奇偶)。
- 点击第 j 格会翻转它自己和四个邻格,于是构造 n² × n² 的系数矩阵 A:当点击 j 会影响格子 i 时 A[i][j] = 1,否则为 0。
- 设当前亮灯状态向量为 b(亮为 1、灭为 0),求解目标就是模 2 意义下的线性方程组 A · x = b (mod 2)。
- 在二元域 GF(2) 上,加法即异或(XOR),乘法即与(AND),因此高斯消元中的「减去某行」直接用异或实现,无需除法,也不存在浮点误差。
- 本页把增广矩阵化为行最简形(RREF):若出现「系数全 0 但常数项为 1」的行,说明该局面无解;否则解存在。
- 矩阵 A 的零空间维数决定自由变量个数:3×3 与 6×6 为 0(解唯一),5×5 为 2(4 组解),4×4 为 4(16 组解)。对全部 2^k 组自由变量赋值枚举,取汉明重量(1 的个数)最小的那组,即为最少点击步数的解。
- 零空间中的非零向量被称为「安静图案(Quiet Pattern)」:整体点一遍它棋盘状态完全不变,这正是同一局面存在多组解法的原因。
- 本页的题目由全灭状态出发反向随机点击生成,因此 b 必然落在 A 的列空间中,保证每一局都有解。
📅 内容更新于
·
📚 收录 2304+ 在线工具
·
🤖 适配 AI 搜索引用(豆包/DeepSeek/Kimi/文心/ChatGPT)