게임

[스크랩] 마방진 문제

배은기 쌤 2008. 5. 29. 23:15
6 x 6칸의 작성 방법.
(n=6, sum=111)
  1. 이 칸들은 4로 약분되지 않고 두 칸이 남으므로, 영역을 아래 그림처럼 나눈다. 우선 분홍색의 경계블록 영역을 경계선처럼 보면 이해가 쉽다.
    영역나누기
  2. A 에서 I 까지의 영역은 4의 배수칸들의 작성법을 적용하여 숫자를 채워 넣는다.
    1차 작성 테두리의 수치(37)는 그 방향의 행 또는 열의 빈 칸에 들어갈 숫자들의 합이 만족시켜야 할 값이다.

    여기서 보면 경계블록의 숫자들에 문제 해결의 열쇄가 있음을 알 수 있다.

    그러면 실제로 경계블록 숫자들을 적절히 조작하여 마방진을 완성시키자.

  3. 우선은 4개의 경계블록 칸에 숫자를 정방향으로 써 내려가자.
    경계블록 숫자 여기서 알고 있어야할 두가지 사실은:
    • 경계블록의 수치들은 곧 조작을 통하여 자리바꿈을 하게 될 것이며,
    • 교차된 지점의 'X' 표시가 된 칸의 숫자들은 자리바꿈에서 제외된다. 왜냐하면 그 숫자들은 대각선의 합과도 관계되기 때문이다.
  4. 우선 좌-우 경계블록의 조작을 먼저 하겠다.
    좌-우 경계블록의 조작 절차
    1. 우측경계블록의 숫자 배열을 상하로 뒤집는다. ==> 가로방향 해결 !!
      (좌측경계블록을 뒤집는 방법도 연구해 보세요..)
    2. 경계블록의 중앙부분에 있는 숫자들을 좌우로 교환시킨다. ==> 세로방향 블록 1차 정리.
    3. 'X' 표시한 칸의 숫자들을 포함한 블록의 세로 합을 보정하기 위해 중앙선의 바로 아래칸(행)에 해당하는 두 숫자를 다시 좌우 교환시킨다. ==> 세로방향 블록 해결 !!
  5. 상-하 경계블록을 위와 같은 절차대로 하다보면 마지막 단계에서 전체 보정을 위한 교환 쌍을 찾을 수 없게 된다. 이 문제를 해결하기 위하여 부득이 아래 그림처럼 다른 영역의 숫자열을 택해서 좌우 순서열을 바꾸어주어야 한다.
    2차 작성
    • 'B' 또는 'H' 영역 중의 한 행을 택해서 좌우 순서열을 바꾸어준다. (cf. 34 <= => 33)
    • 'D' 영역과 'F' 영역 중의 같은 한 행을 택해서 좌우 순서열을 바꾸어준다. (cf. 24 <= => 19)

    각 열의 합이 만족시켜야 할 값이 변경되었다(42-38-36-32). 그러나 위의 5번 단계의 조작을 해줌으로써 나중에 마지막 보정을 성공적으로 할 수 있게 된다. 또한 단계 6-a 처럼 해줌으로써 변경된 세로합의 요구치들(42-38-36-32)을 쉽게 일치시킬 수 있게 된다.
  6. 5번 단계와 연계하여 상-하 경계블록의 조작을 다음과 같이 한다.
    상-하 경계블록의 조작 절차
    1. 상,하경계블록의 숫자 배열을 둘 다 좌우로 뒤집는다. ==> 세로방향 해결 !!
    2. 경계블록의 중앙부분에 있는 숫자들을 상하로 교환시킨다. ==> 가로방향 블록 1차 정리.
    3. 'X' 표시한 칸의 숫자들을 포함한 블록의 가로 합을 보정하기 위해 첫번째칸(열)에 해당하는 두 숫자를 상하 교환시킨다. ==> 가로방향 블록 해결 !!
      (마지막 칸에 해당하는 두 숫자를 선택해도 상관 없겠지요..)

    완성된 마방진 짜~쟌~~ , 마방진 완성!!


    이해와 확인을 돕기 위한 10x10 칸의 예.
    (n=10, sum=505)
1 2 3 94 95 96 97 98 9 10
11 12 13 87 86 85 84 88 19 20
80 29 23 77 76 75 74 28 22 21
70 69 68 34 35 36 37 33 62 61
60 59 58 44 45 46 47 43 52 51
41 42 53 54 55 56 57 48 49 50
40 39 38 64 65 66 67 63 32 31
30 79 73 27 26 25 24 78 72 71
81 82 83 17 16 15 14 18 89 90
91 92 93 7 6 5 4 8 99 100

출처 : 마방진 문제
글쓴이 : 야인 원글보기
메모 :