一个田字格转盘游戏的问题分析

甲乙两人玩一个田字格转盘游戏,规则如下:

(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。

 

posted on 2021-09-27 22:19  readalps  阅读(367)  评论(0编辑  收藏  举报

导航