아마도 이번 포스팅이 끝나면 모든 차수의 마방진 풀이법이 완료될 것이다.
바로 시작해 보도록 하자.
다음은 6차 마방진의 진행과정이다.
다음의 표와 같이 방진의 대각선을 구분짓자.
여기서 다음표와 같이 색칠되어진 대각선에 포함되는 칸은 순차적으로 기록을 하고 색칠되지 않은 칸은 역으로 숫자를 기록하자.
1 |
35 | 34 | 33 | 32 |
6 |
30 |
8 |
28 | 27 |
11 |
25 |
24 | 23 |
15 |
16 |
20 | 19 |
18 | 17 |
21 |
22 |
14 | 13 |
12 |
26 |
10 | 9 |
29 |
7 |
31 |
5 |
4 | 3 | 2 |
36 |
그리고 방진의 가로에서 시작점으로부터 3번째칸과 4번째칸의 경계를 기준으로 좌우로 경계선을 나누는데, 여기서 주의할 점은 경계선이 좌상-우하 대각선을 지나는 시점에서 좌측으로 1칸 이동하고 우상-좌하 대각선을 지나는 시점에서는 다시 우측으로 한칸이동된다는 점이다.
세로도 역시 시작점으로부터 3번째칸과 4번째칸의 경계를 기준으로 상하로 경계선을 나누는데, 여기서도 마찬가지로 경계선이 좌상-우하 대각선을 지나는 시점에서 위로 1칸 이동하고 우상-좌하 대각선을 지나는 시점에서는 다시 아래로 한칸이동된다는 점이다.
글로 설명을 이해하기에 많이 힘이들기 때문에 다음 그림을 참고하자.
1 |
35 | 34 | 33 | 32 |
6 |
30 |
8 |
28 | 27 |
11 |
25 |
24 | 23 |
15 |
16 |
20 | 19 |
18 | 17 |
21 |
22 |
14 | 13 |
12 |
26 |
10 | 9 |
29 |
7 |
31 |
5 |
4 | 3 | 2 |
36 |
파란색 경계선의 오른쪽에서 아래 그림의 파란색과 같은 패턴에 해당하는 칸을 하나의 구역으로 나누고,
녹색 경계선의 아래쪽에서는 녹색과 같은 패턴에 해당하는 칸을 하나의 구역으로 나눈다.
1 |
35 | 34 | 33 | 32 |
6 |
30 |
8 |
28 | 27 |
11 |
25 |
24 | 23 |
15 |
16 |
20 | 19 |
18 | 17 |
21 |
22 |
14 | 13 |
12 |
26 |
10 | 9 |
29 |
7 |
31 |
5 |
4 | 3 | 2 |
36 |
나누어진 구역중 파란색 구역은 상하중앙을 기준으로 위치교환을 하고,
녹색구역은 좌우중앙을 기준으로 위치교환을 한다.
1 |
35 | 34 | 3 | 32 |
6 |
30 |
8 |
28 | 27 |
11 |
7 |
24 | 23 |
15 |
16 |
14 | 19 |
13 |
17 |
21 |
22 |
20 | 18 |
12 |
26 |
9 | 10 |
29 |
25 |
31 |
2 |
4 | 33 | 5 |
36 |
형성된 마방진의 구역나눔표시와 경계선들을 지우면 다음과 같이 마방진이 완성된다.
1 |
35 | 34 | 3 | 32 |
6 |
30 |
8 |
28 | 27 |
11 |
7 |
24 | 23 |
15 |
16 |
14 | 19 |
13 | 17 |
21 |
22 |
20 | 18 |
12 |
26 |
9 | 10 |
29 |
25 |
31 |
2 |
4 | 33 | 5 |
36 |
4의 베수가 아닌 마방진중 6차마방진이 가장 작은 것이라 상단에서 제시한 위치교환 패턴이 눈에 잘 들어오지 않을수도 있고 패턴을 작성하는 경계선의 정확한 구분점도 잘 눈에 들어오지 않는다.
그리고 6차마방진의 경우 3번째와 4번째의 경계가 정확히 절반으로 형성되기 때문에 경계선 작성시의 특이점들이 보이지가 않는다.
그래서 10차와 14차 마방지의 변환과정을 한번 더 보도록 하자.
① 방진 기초 배열 기록 과 경계선 작성
1 | 99 | 98 | 97 | 96 | 95 | 94 | 93 | 92 | 10 |
90 | 12 | 88 | 87 | 86 | 85 | 84 | 83 | 19 | 81 |
80 | 79 | 23 | 77 | 76 | 75 | 74 | 28 | 72 | 71 |
70 | 69 | 68 | 34 | 66 | 65 | 37 | 63 |
62 |
61 |
60 | 59 | 58 | 57 | 45 | 46 | 54 | 53 | 52 | 51 |
50 | 49 | 48 | 47 | 55 | 56 | 44 | 43 | 42 | 41 |
40 | 39 | 38 | 64 | 36 | 35 | 67 | 33 | 32 | 31 |
30 | 29 | 73 | 27 | 26 | 25 | 24 | 78 | 22 | 21 |
20 | 82 | 18 | 17 | 16 | 15 | 14 | 13 | 89 | 11 |
91 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 100 |
1 | 195 | 194 | 193 | 192 | 191 | 190 | 189 | 188 | 187 | 186 | 185 | 184 | 14 |
182 | 16 | 180 | 179 | 178 | 177 | 176 | 175 | 174 | 173 | 172 | 171 | 27 | 169 |
168 | 167 | 31 | 165 | 164 | 163 | 162 | 161 | 160 | 159 | 158 | 40 | 156 | 155 |
154 | 153 | 152 | 46 | 150 | 149 | 148 | 147 | 146 | 145 | 53 | 143 | 142 | 141 |
140 | 139 | 138 | 137 | 61 | 135 | 134 | 133 | 132 | 66 | 130 | 129 | 128 | 127 |
126 | 125 | 124 | 123 | 122 | 76 | 120 | 119 | 79 | 117 | 116 | 115 | 114 | 113 |
112 | 111 | 110 | 109 | 108 | 107 | 91 | 92 | 104 | 103 | 102 | 101 | 100 | 99 |
98 | 97 | 96 | 95 | 94 | 93 | 105 | 106 | 90 | 89 | 88 | 87 | 86 | 85 |
84 | 83 | 82 | 81 | 80 | 118 | 78 | 77 | 121 | 75 | 74 | 73 | 72 | 71 |
70 | 69 | 68 | 67 | 131 | 65 | 64 | 63 | 62 | 136 | 60 | 59 | 58 | 57 |
56 | 55 | 54 | 144 | 52 | 51 | 50 | 49 | 48 | 47 | 151 | 45 | 44 | 43 |
42 | 41 | 157 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 | 166 | 30 | 29 |
28 | 170 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 181 | 15 |
183 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 196 |
② 특정패턴구역 위치교환
1 | 99 | 98 | 97 | 6 | 5 | 94 | 3 | 92 | 10 |
90 | 12 | 88 | 17 | 86 | 85 | 14 | 83 | 19 | 11 |
80 | 79 | 23 | 74 | 26 | 25 | 77 | 28 | 22 | 71 |
70 | 62 | 38 | 34 | 65 | 66 | 37 | 33 | 69 | 31 |
51 | 59 | 53 | 47 | 45 | 46 | 44 | 58 | 42 | 60 |
41 | 49 | 43 | 57 | 55 | 56 | 54 | 48 | 52 | 50 |
40 | 32 | 68 | 64 | 35 | 36 | 67 | 63 | 39 | 61 |
21 | 29 | 73 | 24 | 76 | 75 | 27 | 78 | 72 | 30 |
20 | 82 | 13 | 87 | 15 | 16 | 84 | 18 | 89 | 81 |
91 | 2 | 8 | 4 | 96 | 95 | 7 | 93 | 9 | 100 |
1 | 195 | 194 | 193 | 10 | 191 | 8 | 7 | 188 | 5 | 186 | 3 | 184 | 14 |
182 | 16 | 180 | 25 | 178 | 23 | 176 | 175 | 20 | 173 | 18 | 171 | 27 | 15 |
168 | 167 | 31 | 158 | 38 | 160 | 36 | 35 | 163 | 33 | 165 | 40 | 30 | 155 |
154 | 142 | 54 | 46 | 145 | 51 | 147 | 148 | 48 | 150 | 53 | 45 | 153 | 43 |
127 | 139 | 129 | 67 | 61 | 132 | 64 | 63 | 135 | 66 | 60 | 138 | 58 | 140 |
126 | 114 | 82 | 116 | 80 | 76 | 119 | 120 | 79 | 75 | 123 | 73 | 125 | 71 |
99 | 111 | 101 | 95 | 103 | 93 | 91 | 92 | 90 | 108 | 88 | 110 | 86 | 112 |
85 | 97 | 87 | 109 | 89 | 107 | 105 | 106 | 104 | 94 | 102 | 96 | 100 | 98 |
84 | 72 | 124 | 74 | 122 | 118 | 77 | 78 | 121 | 117 | 81 | 115 | 83 | 113 |
57 | 69 | 59 | 137 | 131 | 62 | 134 | 133 | 65 | 136 | 130 | 68 | 128 | 70 |
56 | 44 | 152 | 144 | 47 | 149 | 49 | 50 | 146 | 52 | 151 | 143 | 55 | 141 |
29 | 41 | 157 | 32 | 164 | 34 | 162 | 161 | 37 | 159 | 39 | 166 | 156 | 42 |
28 | 170 | 17 | 179 | 19 | 177 | 21 | 22 | 174 | 24 | 172 | 26 | 181 | 169 |
183 | 2 | 12 | 4 | 192 | 6 | 190 | 189 | 9 | 187 | 11 | 185 | 13 | 196 |
위의 10차와 14차를 통하여 해법이 이해되었으리라 생각된다.
더 이상의 예를 보여줄 필요는 없다 생각 되기에 마지막으로 php코드를 보도록 하자.
이 코드는 우측상단에서 시작하여 좌측 하단으로 끝나는 4배수가 아닌 짝수 마방진의 풀이법을 구현해본 코드는 다음과 같다.
$k = 1 ; |
여기서 $square는 차수를 의미하며, $i와 $j는 행열을 의미한다.