Knight chess 是歐洲中古世紀的一個名題,題目是如何在8x8的棋盤上,用西洋棋的騎士走法-橫二直一或橫一直二的方式(就像我們的象棋馬的走法一般),走過的不能重覆,可否從第1步到第64步,全部填滿整個棋盤。例如下圖
1 |
|
5 |
36 |
|
40 |
9 |
24 |
4 |
13 |
2 |
39 |
6 |
23 |
|
41 |
|
|
37 |
12 |
35 |
8 |
25 |
10 |
14 |
3 |
|
7 |
38 |
11 |
22 |
|
|
|
15 |
34 |
|
28 |
17 |
26 |
|
|
|
31 |
16 |
21 |
|
19 |
|
|
33 |
|
29 |
18 |
27 |
|
|
|
30 |
|
32 |
|
20 |
|
走到第41步無法再繼續下去,這盤就算失敗的了。
我提供一個解法,如下
1 |
22 |
3 |
18 |
25 |
46 |
13 |
16 |
4 |
19 |
24 |
31 |
14 |
17 |
48 |
45 |
23 |
2 |
21 |
26 |
47 |
60 |
15 |
12 |
20 |
5 |
30 |
61 |
32 |
49 |
44 |
59 |
29 |
54 |
27 |
50 |
43 |
58 |
11 |
36 |
6 |
51 |
62 |
33 |
64 |
37 |
42 |
39 |
55 |
28 |
53 |
8 |
57 |
40 |
35 |
10 |
52 |
7 |
56 |
63 |
34 |
9 |
38 |
41 |
你知道還有其它的解法嗎? 用人工方法要找到一種都很難呢!
但是你相信嗎?用Qbasic語言來寫個程式來解, 答案幾乎有無限組解哩! 不信我隨便再提出另一種解給你看
1 |
14 |
29 |
34 |
11 |
16 |
19 |
32 |
28 |
35 |
12 |
15 |
30 |
33 |
10 |
17 |
13 |
2 |
39 |
36 |
51 |
18 |
31 |
20 |
38 |
27 |
60 |
57 |
40 |
43 |
52 |
9 |
3 |
64 |
37 |
50 |
59 |
56 |
21 |
42 |
26 |
49 |
58 |
61 |
44 |
41 |
8 |
53 |
63 |
4 |
47 |
24 |
55 |
6 |
45 |
22 |
48 |
25 |
62 |
5 |
46 |
23 |
54 |
7 |
你想知道程式是怎麼寫的嗎?
|