有可能在 41 步內翻轉棋盤上的每個方格。我不知道有任何更好的解決方案。
首先想象一下棋盤被編號,當您執黑棋時,左下角為 (0,0),左上角為 (7,0),右上角為 (7,7)。(實際上,方向並不重要,但這樣我們可以更具體。)將騎士放在 (2, 2) 上,並相應地翻轉該方格。然後進行以下 41 步,每步翻轉 3 個方格
1: (2, 1), (2, 0), (3, 0)
2: (3, 1), (3, 2), (4, 2)
3: (4, 1), (4, 0), (5, 0)
4: (6, 0), (7, 0), (7, 1)
5: (6, 1), (5, 1), (5, 2)
6: (6, 2), (7, 2), (7, 3)
7: (6, 3), (5, 3), (5, 4)
8: (6, 4), (7, 4), (7, 5)
9: (6, 5), (5, 5), (5, 6)
10: (6, 6), (7, 6), (7, 7)
11: (6, 7), (5, 7), (5, 6)
12: (4, 6), (4, 5), (4, 4)
13: (4, 3), (3, 3), (2, 3)
14: (1, 3), (1, 2), (1, 1)
15: (0, 1), (0, 2), (0, 3)
16: (0, 4), (1, 4), (2, 4)
17: (3, 4), (3, 5), (3, 6)
18: (3, 7), (2, 7), (1, 7)
19: (0, 7), (0, 6), (0, 5)
20: (1, 5), (2, 5), (2, 6)
21: (3, 6), (4, 6), (4, 7)
22: (4, 6), (3, 6), (2, 6)
23: (1, 6), (1, 5), (1, 4)
24: (1, 5), (1, 6), (2, 6)
25: (1, 6), (1, 5), (1, 4)
26: (1, 5), (2, 5), (3, 5)
27: (3, 6), (4, 6), (5, 6)
28: (4, 6), (3, 6), (3, 5)
29: (2, 5), (1, 5), (1, 6)
30: (1, 5), (1, 4), (0, 4)
31: (1, 4), (1, 5), (1, 6)
32: (1, 5), (1, 4), (0, 4)
33: (1, 4), (1, 3), (1, 2)
34: (1, 1), (1, 0), (0, 0)
35: (0, 1), (1, 1), (2, 1)
36: (1, 1), (1, 2), (1, 3)
37: (1, 2), (1, 1), (2, 1)
38: (1, 1), (0, 1), (0, 2)
39: (1, 2), (1, 1), (1, 0)
40: (0, 0), (0, 1), (0, 2)
41: (0, 1), (0, 0), (1, 0)
關於支援科學新聞報道
如果您喜歡這篇文章,請考慮支援我們屢獲殊榮的新聞報道,透過 訂閱。透過購買訂閱,您正在幫助確保那些關於塑造當今世界的發現和創想的、具有影響力的故事能夠持續被報道。
這個解決方案歸功於 Michael Birken。他將他的方法描述如下。
"我使用了一種貪婪搜尋,它從中間開始搜尋,並從兩端推進。佇列按總翻轉次數、路徑長度和熵排序(其中熵——又名無序度——是一個估計巡視未能覆蓋的島嶼數量的函式)。
"搜尋自然地分為兩個階段。在第一階段,在騎士的種子位置被隨機選擇後,在種子周圍形成部分巡視,建立一個翻轉方格的團塊。搜尋將永遠沒有機會回溯到該團塊中;因此,重要的是團塊應儘可能緊湊,且未翻轉的島嶼數量最少。第二階段是回溯階段,其中搜索探索團塊外部剩餘的未翻轉方格。如果程式可以無限期地執行,那麼將只有回溯階段,但實際上,在種子周圍幾乎無法進行直接搜尋。"
這是一個非常聰明的解決方案,但請注意,某些方格被擊中多次。例如,(1,5) 被擊中 9 次。我想知道您是否可以做得更好。