一个田字格转盘游戏的问题分析
甲乙两人玩一个田字格转盘游戏,规则如下:
(1). 游戏开局时,由甲在转盘的四个格子里各填上一个数字(仅限 0 或 1);
(2). 乙背对转盘发出对转盘中的数字进行更改的指令,允许的指令有:
a. 对指定的一格或两格独立填值;
b. 对指定的一格或两格里的数字做翻转操作,即 0 变 1,1 变 0。
(3). 甲每执行完一次乙的指令,检查四个格里数字是否为全 0 或全 1,是,则游戏结束;否则,甲对转盘做若干次 90 度旋转后等待乙的下一个指令。
问:乙有没有可行的方案来确保 k 次指令内结束游戏?若有,k 的最小值是多少?
分析与解:这个问题等价于 2x2 方阵变换问题。由于乙看不到转盘中的数字,四格的数字情况可表示为
xx
xx
这里 x 表示不确定是 0 还是 1 的情形。为了可以掌控数字分布情况,易知一开始一定要采用 a 类指令(此时做 b 类指令是徒劳的),且还有旋转带来的干扰,对两个数字置值会比对一个数字置值效果更好。比如:
指令一:把对角的两个数字置为 1
即初始方阵变换为如下情形之一:
1x x1
x1 1x
两处 x 若全为1,则游戏结束。否则,经若干次旋转后,也还是这两种情形。
第二个指令若选择翻转操作依然是徒劳的;同样由于旋转带来的干扰,对单个数字置 1 或重复第一次的指令也可能是徒劳的。
指令二:把同一行(或列)的两个数字置为 1
以第一行为例,方阵会变换为如下情形之一:
11 11
x1 1x
此时,只有一格为 x,若 x = 1,游戏结束。若 x = 0,经旋转干扰后,方阵会是以下四种情形之一:
11 01 10 11
01 11 11 10
不难发现,上述两次指令可以交换顺序,效果是一样的,即若不出现全 1,则必然是三个 1 和 一个 0 的情形。
另外,容易验证如果前两次指令不采用上述两种组合之一的话,至多只能走到确保有两个相邻数字同为 1 或有两个对角数字同为 1 的地步(由对称性,这里的 1 也可以换成 0)。
接着分析下一步怎么走。此时,四个数字都已掌控,即三个 1 和 一个 0,再施用 a 类指令没有意义,具体来看,对单个数字置 1 或 0 均不能避免重复置值的可能,同样对两个数字置值也不能避免重复置值的可能,而一旦出现重复置值,就等于原地踏步,施用的指令是徒劳的。
再看翻转指令,若翻转两个数字,会有 01 翻转为 10 的可能,还是原地踏步。因此只剩下一种指令可选。
指令三:对任一格的数字做翻转操作
以左上角的数字为例,翻转后方阵会变换为以下四种情形之一:
01 11 00 01
01 11 11 10
其中第二种为全 1,游戏结束。其余三种再经旋转后,方阵会是以下六种情形之一:
01 00 10 11 01 10
01 11 10 00 10 01
这六种都是 0 和 1 各两个的情形。其中,前四种可归为 A 类(相同的数字相邻),后两种可归为 B 类(相同的数字互为对角)。
对于 B 类方阵,只需做一次对角两个数字的翻转即可确保游戏结束。而对于 A 类方阵,也容易看到做一次相邻两个数字的翻转后,要么成为全 1 或全 0 方阵,游戏结束;要么成为 B 类方阵。而对 B 类方阵做一次相邻两个数字的翻转会成为 A 类方阵。
由上述分析可知,随后的三次指令只能为:
指令四:把对角的两个数字做翻转操作
以翻转左上和右下两个数字为例,翻转后方阵会变换为以下六种情形之一:
11 10 00 01 11 00
00 10 11 01 11 00
后两种已经是全 1 或全 0,游戏结束。前四种经旋转后,还是这四种,即
11 10 00 01
00 10 11 01
指令五:把同一行(或列)的两个数字做翻转操作
以第一行为例,翻转后方阵会变换为以下四种情形之一:
00 01 11 10
00 10 11 01
第一种和第三种已经是全 0 或全 1,游戏结束。剩余两种即为上述的 B 类情形,经旋转后还是 B 类,即:
01 10
10 01
指令六:把对角的两个数字做翻转操作
翻转后方阵会变换为全 1 或全 0 方阵,游戏结束。
以上便是一个可行方案,且有 k = 6。而综合上面的分析过程,可知 k ≥ 6,因此 k 的最小值就是 6。