开关灯游戏攻略
1、在高中阶段,矩阵和矩阵乘法的教学往往不被重视,在多数高中生眼里,认为矩阵就是一张简单的数表,把矩阵的运算看作是数字运算的批处理。那么本文将从灭灯游戏这一有趣的问题入手,带你看看矩阵的真正实力。灭灯游戏背后的本质是线性代数,本文将通过建立矩阵模型,将经典的灭灯游戏的破解转化为求解一次线性方程组的问题。
2、灭灯游戏,是20世纪90年代开始流行的一款电子游戏,该游戏由一个的网格组成,每格代表一盏灯,每盏灯只有点亮和熄灭两种状态,游戏的初始状态是,25盏灯中有些是亮的,其余则是暗的。点击任意一个格子将使得它和相邻格子的灯变换状态。游戏的目标是用尽可能少的点击数让所有灯都变暗。随着灭灯游戏的盛行,它还出现了很多变种游戏改变灯的状态:从2种到3种甚至多种,用不同颜色来表示不同状态,
3、修改游戏规则,比如点击任意一个格子会改变该格子所在行或列的格子的状态。改变网格大小或形状:除了网格,还有,大小的灭灯游戏,另外也有将正方形改为六边形等其他各种怪异形状的。下面是一些实物游戏机我们来考虑网格的灭灯游戏。
4、游戏的规则是:每格代表一盏灯,每盏灯只有点亮和熄灭两种状态,游戏的初始状态是,9盏灯中有些是亮的,其余则是暗的。点击任意一个格子将使得它和相邻格子的灯变换状态。游戏的目标是用尽可能少的点击数让所有灯都变暗。下面我们给出一个初始状态。
5、首先根据灭灯游戏的规则,可以得出以下3个基本且重要的结论:。一个格子点击两次(偶数次)不改变状态。一个格子的状态只取决于它被点击偶数次还是奇数次,因此与按键的顺序无关。
开关灯游戏攻略
1、从初始状态到灭灯状态和从灭灯状态回到初始状态所点击的格子是一样的。进一步,我们将灭灯游戏中每个灯的状态用表示,其中1表示灯打开,0表示灯关闭。
2、格子点击的次数只考虑。那么灯的状态和格子点击次数均满足以下运算法则:。即对于二元集定义相加再模2运算,即2的同余类加法运算。现在回到我们的问题,只需要考虑将全灭状态转为该初始状态。
3、我们将灯按1-9进行编号。假设表示第号格子点击的次数。
4、先考虑号灯,其初始状态为点亮的,可以发现只有点击号格子,才会影响该灯的状态。同理,可以列出其他格子对应的方程,便可得到一个9元1次方程组。为了表述和计算的方便,下面我们通过矩阵表示来建立线性方程组。
5、初始状态可以用一个向量表示,其元素来自于集合,1表示灯是打开的,0表示灯是关闭的。所以图1的状态用向量表示就是。称为初始状态向量。由于点击任意一个格子将使得它和相邻的格子变换状态,对于每个灯,都可定义状态转移向量。