熄灯游戏:按一下,点亮一片
5×5灯阵,按一盏会翻转它和上下左右。能否全部熄灭?这其实是 GF(2) 上解线性方程组——按错了用线性代数救场。
题目
一个 的灯阵,每盏灯亮或灭。按其中一盏,会翻转它自己以及上下左右相邻的灯(亮变灭、灭变亮)。给定初始亮灯图案,能否通过若干次按动,让所有灯全部熄灭?
答案与解析
可以,而且这是一道线性代数题!在模 2 意义下(翻转两次=没翻),设 表示是否按 ,每盏灯的最终状态是它自己和邻居被按次数的奇偶和。于是 25 盏灯给出 25 个方程: 其中 是 25×25 的“影响矩阵”, 是初始亮灯向量。问题等价于判断这个二元方程组是否有解。
经典 5×5 版中,矩阵 的秩是 23,所以并非所有初始图案都能全灭(有 4 维的“不可解空间”);能全灭的图案恰占 ,且解不唯一——按法之间相差零空间里的“幻影模式”。
背后的数学
熄灯游戏(Lights Out,1995 年老虎电子玩具)是有限域 线性代数的绝佳教具。它把“玩游戏”翻译成“解模 2 方程组”,也连通了图论里的邻接矩阵与编码理论。手机上那些“翻转相邻格子”的益智游戏,骨子里都是同一套代数。