网易首页 > 网易号 > 正文 申请入驻

用线性代数解灭灯游戏

0
分享至

在高中阶段, 矩阵和矩阵乘法的教学往往不被重视, 在多数高中生眼里, 认为矩阵就是一张简单的数表, 把矩阵的运算看作是数字运算的批处理. 那么本文将从灭灯游戏这一有趣的问题入手, 带你看看矩阵的真正实力.

灭灯游戏背后的本质是线性代数, 本文将通过建立矩阵模型, 将经典的灭灯游戏的破解转化为求解一次线性方程组的问题.

灭灯游戏及其变体

灭灯游戏, 是20世纪90年代开始流行的一款电子游戏, 该游戏由一个 的网格组成, 每格代表一盏灯, 每盏灯只有点亮和熄灭两种状态, 游戏的初始状态是, 25盏灯中有些是亮的, 其余则是暗的. 点击任意一个格子将使得它和相邻格子的灯变换状态. 游戏的目标是用尽可能少的点击数让所有灯都变暗.

随着灭灯游戏的盛行, 它还出现了很多变种游戏, 比如:

改变灯的状态:从2种到3种甚至多种(用不同颜色来表示不同状态).

修改游戏规则, 比如点击任意一个格子会改变该格子所在行或列的格子的状态.

改变网格大小或形状:除了 网格, 还有 , 大小的灭灯游戏, 另外也有将正方形改为六边形等其他各种怪异形状的.

下面是一些实物游戏机. [1]

我们来考虑 网格的灭灯游戏. 游戏的规则是:每格代表一盏灯, 每盏灯只有点亮和熄灭两种状态, 游戏的初始状态是, 9盏灯中有些是亮的, 其余则是暗的. 点击任意一个格子将使得它和相邻格子的灯变换状态. 游戏的目标是用尽可能少的点击数让所有灯都变暗. 下面我们给出一个初始状态,如图所示.

首先根据灭灯游戏的规则, 可以得出以下3个基本且重要的结论:

  1. 一个格子点击两次(偶数次)不改变状态.

  2. 一个格子的状态只取决于它被点击偶数次还是奇数次, 因此与按键的顺序无关.

  3. 从初始状态到灭灯状态和从灭灯状态回到初始状态所点击的格子是一样的.

进一步,我们将灭灯游戏中每个灯的状态用 表示, 其中1表示灯打开, 0表示灯关闭. 格子点击的次数只考虑 .

那么灯的状态和格子点击次数均满足以下运算法则:

即对于二元集 定义相加再模2运算, 即2的同余类加法运算.

现在回到我们的问题, 只需要考虑将全灭状态 转为 该初始状态. 我们将灯按1-9进行编号.

假设 表示第 号格子点击的次数.

先考虑 号灯, 其初始状态为点亮的, 可以发现只有点击 号格子, 才会影响该灯的状态.

于是便有方程 .

同理,可以列出其他格子对应的方程, 便可得到一个9元1次方程组.

为了表述和计算的方便,下面我们通过矩阵表示来建立线性方程组.

用矩阵表示

初始状态可以用一个向量 表示, 其元素来自于集合 , 1表示灯是打开的, 0 表示灯是关闭的.

所以图1的状态用向量表示就是

称为初始状态向量.

由于点击任意一个格子将使得它和相邻的格子变换状态, 对于每个灯, 都可定义状态转移向量

比如, 在全灭的状态, 点击 号灯, 则有

在全灭的状态, 点击 号灯, 有

将这9个灯的状态转移向量组合在一起, 就可以得到9行9列的矩阵, 称为状态转移矩阵.

视频中的游戏过程对应式子:

其中 表示零向量, 表示灭灯游戏中灯全灭的状态.

向量的加法遵循常规的矩阵加法运算, 只是这里元素相加后需要再进行模2运算.

于是 ,因此 。等式两边加上 后,得到 。

一般的, 给定一个初始状态向量 假设 表示第 号格子点击的次数(只需要考虑 即可), 那么找到游戏的最优解就是解出方程:

所以灭灯游戏求解就是求解上述线性方程组.

面对不同的初始状态, 只需要改变初始状态向量即可, 而对于所有的 灭灯游戏, 我们只需要分析线性方程组中的系数矩阵(状态转移矩阵), 即可得到方程是否有解. 从灭灯游戏中可以看到, 矩阵不仅仅是一张数表, 它可以将一个向量变换为另一个向量, 所以矩阵也是一种变换.

灭灯游戏求解

对于上文中 灭灯游戏的初始状态, 其求解只需要在线性方程组中将初始状态向量, 代入.

下面我们用计算机来完成方程组求解:

# input

import numpy as np
import galois
GF = galois.GF(2)

A = GF([[1, 1, 0, 1, 0, 0, 0, 0, 0],
[1, 1, 1, 0, 1, 0, 0, 0, 0],
[0, 1, 1, 0, 0, 1, 0, 0, 0],
[1, 0, 0, 1, 1, 0, 1, 0, 0],
[0, 1, 0, 1, 1, 1, 0, 1, 0],
[0, 0, 1, 0, 1, 1, 0, 0, 1],
[0, 0, 0, 1, 0, 0, 1, 1, 0],
[0, 0, 0, 0, 1, 0, 1, 1, 1],
[0, 0, 0, 0, 0, 1, 0, 1, 1]
])

B = GF([1, 1, 0, 0, 0, 0, 0, 0, 0])

x = np.linalg.solve(A, B)
print(x)

# output

# [1 0 1 0 1 1 0 0 1]

即只需要点击 号格子, 即可灭灯.


注意:这里的线性方程组求解是在有限域GF2上进行运算的, 需要用到 galois包[2].

更多思考

关于灭灯游戏, 其实还有很多问题可以思考:

解线性方程组需要高斯消去法, 高斯消去法在这里还能适用吗?

灭灯游戏的状态转移矩阵是怎样的? 与 灭灯游戏的状态转移矩阵有什么区别?

对于不同网格大小的灭灯游戏, 任意一个初始状态 , 是否一定有解?

如果不是, 那么随机选择一个初始状态 , 有解的概率是多少?

如果有解, 那么解是否唯一?如果不唯一, 能否找到最优解(最少步数的可行解)?

参考来源:

1. The Mathematics of Lights Out,

https://www.jaapsch.net/puzzles/lomath.htm#refs.

2. https://github.com/mhostetter/galois

图片来源:

1. The Mathematics of Lights Out,

https://www.jaapsch.net/puzzles/lomath.htm#refs.

来源:数来数趣

编辑:小咕咕

转载内容仅代表作者观点

不代表中科院物理所立场

如需转载请联系原公众号

1.2.

3.

4.

5.

6.

7.

8.

9.

10.

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
女子多次告知自己花生严重过敏 餐厅仍在菜中加入花生油 致女子出现严重过敏反应进抢救室 女子要求赔偿1000元被质疑“敲诈勒索”

女子多次告知自己花生严重过敏 餐厅仍在菜中加入花生油 致女子出现严重过敏反应进抢救室 女子要求赔偿1000元被质疑“敲诈勒索”

闪电新闻
2026-05-26 18:43:15
俄外长与美国务卿通话,要求美方撤离驻基辅大使馆人员

俄外长与美国务卿通话,要求美方撤离驻基辅大使馆人员

界面新闻
2026-05-26 21:44:51
投毒杀人者、 三体公司原CEO许垚被执行死刑

投毒杀人者、 三体公司原CEO许垚被执行死刑

经济观察报
2026-05-26 09:53:04
不声不响从5元涨到132,上涨26倍,有几个投资者能拿到现在?

不声不响从5元涨到132,上涨26倍,有几个投资者能拿到现在?

丁丁鲤史纪
2026-05-26 17:44:43
王鹤棣父亲回应店铺遭多条差评:生意下降了40%,白天晚上都有影响

王鹤棣父亲回应店铺遭多条差评:生意下降了40%,白天晚上都有影响

封面新闻
2026-05-26 19:12:38
半导体大佬集体减持后,杭州豪宅被抢疯了!

半导体大佬集体减持后,杭州豪宅被抢疯了!

樱桃大房子
2026-05-25 21:52:46
欧洲要求俄罗斯“投降、赔款”,俄外长告知美方对乌打击计划!普京修改法律批准境外用兵:军队可用于保护境外俄公民

欧洲要求俄罗斯“投降、赔款”,俄外长告知美方对乌打击计划!普京修改法律批准境外用兵:军队可用于保护境外俄公民

每日经济新闻
2026-05-26 15:11:33
连丢三盘出局,张之臻遭遇法网一轮游!中国选手仅3人突破首轮

连丢三盘出局,张之臻遭遇法网一轮游!中国选手仅3人突破首轮

全景体育V
2026-05-26 21:27:32
突发!上海队怀特塞德意外受伤,无缘CBA总决赛

突发!上海队怀特塞德意外受伤,无缘CBA总决赛

体育哲人
2026-05-26 19:49:43
伊朗媒体:伊朗全面恢复国际互联网连接

伊朗媒体:伊朗全面恢复国际互联网连接

界面新闻
2026-05-26 23:27:13
航天员黎家盈年收入多少?回来后享受什么待遇?

航天员黎家盈年收入多少?回来后享受什么待遇?

墨印斋
2026-05-26 09:56:09
五个副省级城市政府主要领导调整,“70后”杜旭亮任杭州市代市长

五个副省级城市政府主要领导调整,“70后”杜旭亮任杭州市代市长

上观新闻
2026-05-26 10:21:18
教育是不是生大病了?网传现在的中学生都过得很压抑…

教育是不是生大病了?网传现在的中学生都过得很压抑…

慧翔百科
2026-05-26 11:29:48
毒性堪比砒霜!正大量上市,一旦发苦赶紧吐掉!医生:煮熟也有毒

毒性堪比砒霜!正大量上市,一旦发苦赶紧吐掉!医生:煮熟也有毒

中吴网
2026-05-25 22:42:39
乌克兰每日消耗1万架无人机,俄军90%伤亡来自无人机!

乌克兰每日消耗1万架无人机,俄军90%伤亡来自无人机!

三言四拍
2026-05-26 12:40:30
18.99万起,奔驰新车官宣:6月11日,正式上市

18.99万起,奔驰新车官宣:6月11日,正式上市

科技堡垒
2026-05-25 12:00:29
双汇子公司猪肉抗生素超标37.5倍 长期摄入或致心血管副作用

双汇子公司猪肉抗生素超标37.5倍 长期摄入或致心血管副作用

闪电新闻
2026-05-25 21:26:10
A股:2.5亿股民,今晚可能要兴奋得睡不着觉了,你知道为什么吗?

A股:2.5亿股民,今晚可能要兴奋得睡不着觉了,你知道为什么吗?

夜深爱杂谈
2026-05-26 21:39:12
“B类留神峪”矿工们的逃生与等待

“B类留神峪”矿工们的逃生与等待

澎湃新闻
2026-05-26 19:48:27
比预制菜更恐怖的,是被科技狠活承包的现制餐

比预制菜更恐怖的,是被科技狠活承包的现制餐

蓝鲸新闻
2026-05-25 19:47:39
2026-05-27 01:28:49
中科院物理所 incentive-icons
中科院物理所
爱上物理,改变世界。
10204文章数 136552关注度
往期回顾 全部

教育要闻

高考地理:做对这几件事,让你多拿15分,不开玩笑!

头条要闻

留神峪逃生矿工在宿舍不肯离开:拿到被拖欠的工资再走

头条要闻

留神峪逃生矿工在宿舍不肯离开:拿到被拖欠的工资再走

体育要闻

上赛季差点降入英甲,下赛季要踢英超了

娱乐要闻

台媒贴脸!S妈被问大S嗑药当场沉默

财经要闻

中国铝行业爆单 下一个“煤炭”大周期?

科技要闻

中国AI要向外卷,而不只是做第二个OpenAI

汽车要闻

涉水加强 福特烈马亚马逊限量版上市 售价39.98万

态度原创

游戏
本地
房产
数码
艺术

猎魂世界:千仞雪/王秋儿售后盘点!售后是越多越好还是越少越好

本地新闻

用云锦的方式,打开江苏南京

房产要闻

招商地产接盘碧桂园!海口这个烂尾豪宅,要彻底改命?

数码要闻

小米Poco Pad C1海外发布,入门平板也卷高刷?

艺术要闻

gmp新作:上海张江模力社区

无障碍浏览 进入关怀版