谜题 IBM-273
两个障碍让机器人完成两次访问
IBM Research · Ponder This · 2021 年 1 月
IBM Ponder This #273 · 2021 年 1 月
机器人在 N×N 环面网格上分配疫苗,起点为左上角 (0,0),初始朝上,各格状态均为 0。每步先处理当前格:状态 0 变为 1,并顺时针转 90°;状态 1 变为 2,并逆时针转 90°;状态 2 不变,也不转向。随后沿当前方向前进一步,越界从对侧进入。
4×4 的初始若干步如下,方括号标出机器人:
[0] 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1 [0] 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1 1 0 0
0 [0] 0 0
0 0 0 0
0 0 0 0
1 1 0 0
[0] 1 0 0
0 0 0 0
0 0 0 0
[1] 1 0 0
1 1 0 0
0 0 0 0
0 0 0 0
2 1 0 [0]
1 1 0 0
0 0 0 0
0 0 0 0
这个例子无法使全部格子达到 2。现在允许事先把一些格子改为 B。机器人遇到 B 时不改变格子,逆时针转 90°再前进;B 格不需要达到 2。例子如下:
[0] B 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1 [B] 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1 B 0 0
0 0 0 0
0 0 0 0
0 [0] 0 0
任务:N=50 时放置恰好两个 B,使所有其他格最终达到 2。答案为 [(a,b),(x,y)]。
附加问题:N=100 时用至多三个 B 完成,可获一星;找出两个 B 已不够用的最小 N,可获两星。
解答
认真尝试后再打开待补充。