최근 수정 시각 : 2024-11-01 09:12:46

마방진

이산수학
Discrete Mathematics
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px; word-break: keep-all"
이론
<colbgcolor=#3CC> 기본 대상 수학기초론(수리논리학 · 집합론) · 수열 · 조합 · 알고리즘 · 확률
다루는 대상과 주요 토픽
수열 등차수열(뛰어 세기) · 등비수열 · 계차수열 · 조화수열 · 귀납적 정의(점화식) · 급수 · 규칙과 대응 · 규칙 찾기 · 피보나치 수열 · 읽고 말하기 수열 · 생성함수
조합 경우의 수(공식) · 순열(완전 순열 · 염주 순열) · 치환 · 분할(분할수) · 최단거리 · 제1종 스털링 수 · 제2종 스털링 수 · 카탈랑 수 · 벨 수 · 라흐 수 · 포함·배제의 원리 · 더블 카운팅 · 조합론
그래프 수형도(트리) · 인접행렬 · 마방진 · 마법진 · 한붓그리기(해밀턴 회로) · 쾨니히스베르크 다리 건너기 문제
기타 P-NP 문제미해결 · 4색정리 · 이항정리(파스칼의 삼각형) · 이산 푸리에 변환 · 비둘기 집의 원리 · 상트페테르부르크의 역설 · 투표의 역설 · 에르고딕 가설미해결 · 콜라츠 추측미해결 · 시행착오 (예상과 확인) · 불 논리 · 브라에스 역설
관련 문서 논리학 관련 정보 · 수학 관련 정보 · 컴퓨터 관련 정보 · 틀:수학기초론 · 틀:통계학 · 틀:이론 컴퓨터 과학 }}}}}}}}}

4 9 2
3 5 7
8 1 6
3×3 마방진의 예
1. 개요2. 역사3. 특징
3.1. 홀수 차수 마방진3.2. 짝수 차수 마방진
3.2.1. [math(2^{n}\times 2^{n})] 차수 마방진3.2.2. 그 외 짝수차 마방진
3.3. 성질3.4. 특이 형태3.5. 변형
4. 사토르 마방진
4.1. 만드는 법
5. 참고

/ magic square

1. 개요

n2개의 수를 n × n 사각형에 가로 세로 대각선의 합이 같도록 배열한 것.

2. 역사

마방진의 기원은 분명하지는 않으나 약 3000년 전 중국의 우(禹)나라의 우왕이 강의 치수공사를 하던 중에 물 속에서 나온 거북이 등에 있는 무늬(하도낙서)를 보고 처음으로 생각해 내었다고 한다. 그 후 마방진은 신비한 전설과 같이 인도, 페르시아, 아라비아 상인들에 의해 서아시아, 남아시아, 유럽으로 전해졌다. 수학의 요소임에도 불구하고 이름에 '魔'나 'magic'이란 글자가 있는 등 오컬트의 성격이 남아 있는데, 이는 과거에는 마방진을 신비한 힘이 깃들어 있는 부적처럼 여겼기 때문이다. 현재도 오컬트적인 탈리스만을 만들때 마방진을 사용한다.[1]

3. 특징

보통은 1부터 n2까지 채운 것을 말한다. 넓은 의미로는 수를 특정한 모양으로 배열해서 정해진 단위의 합이 일정한 것.

3.1. 홀수 차수 마방진

홀수 마방진의 경우 대각선으로 숫자를 써가면서 다 채운 다음에 상하좌우에 튀어나온 숫자들을 반대편으로 넘기면 끝난다. 드라마 뿌리깊은 나무에서 어린 이도가 이걸 스스로 찾아내는 장면이 나온다.
9
8 1 6
7 3 5 7 3
4 9 2
1

3.2. 짝수 차수 마방진

짝수 마방진의 경우는 4×4의 경우와 이를 응용한 8×8(12×12, 16×16 등 4의 배수라면 동일한 방법으로 가능하다.)

3.2.1. [math(2^{n}\times 2^{n})] 차수 마방진

이 경우 매우 쉽게 만들어 진다. 2진법 표기를 응용하는데, 1에서 시작하여, 다음 점화식을 거치게 된다.
(1). [math(a_1)]=1
(2). [math(n)]번째 단계를 [math(a_n)]이라 할 때, [math(a_{n+1}=a_{n}\times 2^{\lceil\log_{2}{a_n}+1\rceil}+b_{n})]([math(b_n)]은 [math(a_n)]의 1의 보수[2])[3]
이 과정을 반복하면 다음과 같이 된다.
[math(a_1=1)]
[math(a_2=10)]
[math(a_3=1001)]
[math(a_4=1001\quad0110)]
[math(a_5=1001\quad0110\quad0110\quad1001)]
[math(a_6=1001\quad0110\quad0110\quad1001\quad0110\quad1001\quad1001\quad0110)] 식으로 전개된다.
이 중에서 [math(a_{2k+1})](단, [math(k \geq 2)])를 택하면 된다.

여기서 [math(a_{2k+1})]순열을 이용해서 [math(2^{k}\times 2^{k})] 마방진을 만들면 다음과 같다. 아래는 [math(a_5)]와 4×4를 예시로 들었다.
1) 먼저, 4×4 칸에 [math(a_5)]을 한 칸에 1자리씩 적어넣는다. [math(a_{2k+1})]를 택했다면 [math(2^{k}\times 2^{k})] 칸을 택하면 된다.
1 0 0 1
0 1 1 0
0 1 1 0
1 0 0 1
2) 그 후, 1부터 16까지를 칸에 맞춰 적어넣는다. 단, 1)에서 적은 수가 0일 경우는 생략한다. [math(a_{2k+1})]를 택했다면 1~[math(2^{2k})]를 적어넣으면 된다.
11 0 0 14
0 16 17 0
0 110 111 0
113 0 0 116
3) 이제 16에서 1까지를 칸에 맞춰 적어넣는다. 단 2)에서 숫자를 적어넣었을 경우는 생략한다. [math(a_{2k+1})]를 택했다면 [math(2^{2k})]~1을 적어넣으면 된다.
11 015 014 14
012 16 17 09
08 110 111 05
113 03 02 116
4) 1)에서 적어넣은 1과 0을 지운다. 이로서 완성.
1 15 14 4
12 6 7 9
8 10 11 5
13 3 2 16

3.2.2. 그 외 짝수차 마방진

a×a차 마방진과 b×b차 마방진의 구성을 알고 있을 때, ab×ab차 마방진은 a차 마방진의 구성을 우선적으로 따르는 방식과 b차 마방진의 구성을 우선적으로 따르는 방식으로 만들어질 수 있다.
예를 들어서 12×12차 마방진의 경우, 12=3×4이므로 다음 두가지 구성이 만들어진다.
3×3차 마방진의 구성을 우선적으로 따르는 방식
1 15 14 4
8 1 6 134 127 132 125 118 123 35 28 33
3 5 7 129 131 133 120 122 124 30 32 34
4 9 2 130 135 128 121 126 119 31 36 29
12 6 7 9
107 100 105 53 46 51 62 55 60 80 73 78
102 104 106 48 50 52 57 59 61 75 77 79
103 108 101 49 54 47 58 63 56 76 81 74
8 10 11 5
71 64 69 89 82 87 98 91 96 44 37 42
66 68 70 84 86 88 93 95 97 39 41 43
67 72 65 85 90 83 94 99 92 40 45 38
13 3 2 16
116 109 114 26 19 24 17 10 15 143 136 141
111 113 115 21 23 25 12 14 16 138 140 142
112 117 110 22 27 20 13 18 11 139 144 137
4×4차 마방진의 구성을 우선적으로 따르는 방식
816
113 127 126 116 1 15 14 4 81 95 94 84
124 118 119 121 12 6 7 9 92 86 87 89
120 122 123 117 8 10 11 5 88 90 91 85
125 115 114 128 13 3 2 16 93 83 82 96
357
33 47 46 36 65 79 78 68 97 111 110 100
44 38 39 41 76 70 71 73 108 102 103 105
40 42 43 37 72 74 75 69 104 106 107 101
45 35 34 48 77 67 66 80 109 99 98 112
492
49 63 62 52 129 143 142 132 17 31 30 20
60 54 55 57 140 134 135 137 28 22 23 25
56 58 59 53 136 138 139 133 24 26 27 21
61 51 50 64 141 131 130 144 29 19 18 32

다만 문제는 응용으로 만드는게 불가능한 6×6, 14×14 등의 짝수 마방진은 생각보다 만들기 상당히 까다롭다.
아래는 6×6 마방진.
3229412421
3031232223
12917202825
101118192627
1316363358
1415343567

3.3. 성질

1×1 마방진은 1개가 존재하지만 2×2 마방진은 존재하지 않는다. 회전과 대칭을 고려하면 3×3 마방진은 1개가 존재하고 4×4 마방진은 880개가 존재한다. 5×5 마방진은 275,305,224개가 존재한다는 사실을 1973년수학자 리처드 슈뢰펠(Richard Schroeppel)이 알아내었다.

3.4. 특이 형태

가로세로줄을 떼어 반대편에 붙여도 마방진이 되는 범마방진이 있다.

소수로만 이루어진 마방진도 있다.(3×3)
1711347
895929
715101

한 마방진에 들어있는 숫자들의 영어 스펠링 갯수를 다시 숫자로 써도 성립하는 마방진이 있다. 이를 알파마방진(alphamagic square)이라고 한다.

<문제적 남자>에서 이 알파마방진에 대한 문제가 나왔는데, 원래는 정해진 규칙을 찾아 숫자 마방진 2개를 채우는 문제였으나 오현민이 스펠링 규칙과 상관없이 마방진의 필연적 특성인 등차수열, 그리고 마방진 내 숫자들의 대소관계만으로 두 마방진을 정확히 채워서 '제작진의 의도와 다른 풀이지만 정답으로 인정받는' 사태가 일어나기도 했다. 이후 원래 규칙을 알아내는 것을 다시 문제로 출제해서 주우재가 알아내며 알파마방진의 신비로운 규칙도 성공적으로 방송을 탔다.
2 two(3글자)
5 five(4글자)
8 eight(5글자)
12 twelve(6글자)
15 fifteen(7글자)
18 eighteen(8글자)
22 twentytwo(9글자)
25 twentyfive(10글자)
28 twentyeight(11글자)
대소관계가 일치하여 15를 중심으로 배치하면 어떻게 해도 마방진이 된다. 물론 알파마방진 자체는 대소관계와는 상관없지만.

의외로 알파마방진은 하나만 있는 것이 아니다. 한 컴퓨터 공학자는 2017년에 알파마방진이 이중으로 적용되는 예를 발견하기도 했다.

3.5. 변형

넓은 의미의 마방진으로 육각형 거북이 등껍질처럼 배열한 지수귀문도 (영의정을 여러 차례 지낸 최석정이 처음 고안), 입체마방진(매직 큐브), 모양의 매직 스타, 육각형 격자에 육각형 안에 숫자를 채운 매직 헥사곤 등이 있다. 사실 사각형이 아니기 때문에 마법진으로 구분하기도 한다.

스도쿠는 마방진과 비슷한 라틴방진(Latin Square)에서 아이디어를 얻은 숫자 퍼즐 게임이다. 라틴방진이란 n × n의 사각형의 가로세로 각 줄에 1부터 n까지의 숫자가 한 번씩만 나오도록 배열한 것이다. 라틴방진은 레온하르트 오일러가 연구했기 때문에 오일러방진으로도 불린다.

4. 사토르 마방진

'사토르 마방진'이라는 것도 있으며, 이것은 수학이 아닌 언어와 관련된 것이다. 가로쓰기로 읽을 때와 세로쓰기로 읽을 때가 똑같은 단어 집합들을 이르는데, 우리가 흔히 알고 있는 '개똥아 똥쌌니 아니요'[4]가 예시이다. 여기서 가로쓰기는 좌횡서, 세로쓰기는 좌종서로 쓰는 게 일반적이다.
S A T O R
A R E P O
T E N E T
O P E R A
R O T A S
사토르 마방진이라는 이름은 Sator Arepo Tenet Opera Rotas라는 라틴어 문장에서 유래했으며, 이는 가로로 읽으나 세로로 읽으나 똑같이 읽히기도 하지만 거꾸로 읽어도 역시 같다. 즉, 회문이다.
  • Sator: 씨 뿌리는 사람, 창조자
  • Arepo: 의미불상. 마방진에 맞춰 만들어진 고유명사로 해석함. 혹은 소수의견으로 이집트 상형문자에서 파생한 단어로 여김.
  • Tenet: ←teneo. 잡다, 견지하다, 도달하다.
  • Opera: 일, 공적 활동, 보살핌.
  • Rotas: ←rota. 바퀴, 녹로, 형차.
해석을 두고 설이 많으나 대략 "농부 아레포가 바퀴를 굴리는 일(=밭을 가는 일)을 하는 것"으로 해석한다. 폼페이 유적에서 발견된 것이 가장 오래된 것이며 1세기 경에 이미 성립된 것으로 추측된다.

다른 유력한 해석으로, 위의 표를 애너그램으로 재배열하면 다음과 같은 모양이 된다.
A P O
A
T
E
R
P A T E R N O S T E R
O O A
S
T
E
R
AO그리스 문자알파(Α)와 오메가(Ω)의 라틴 문자이며, 십자가 모양으로 배열된 Pater noster는 주님의 기도라틴어 첫 구절이다. 이를 토대로 이 표식이 기독교도를 표현하는 암호였다는 해석이 있다.

크리스토퍼 놀란 감독의 영화 <테넷>이 이 사토르 마방진에서 일부 용어를 따왔다. 영화 제목인 테넷, 주연급 악역인 사토르, 영화의 오프닝 무대였던 오페라 극장, 미술품 위작을 그린 아레포, 프리포트를 만든 회사인 로타스까지 사토르 마방진의 5개 요소를 모두 사용하였다. 상술한 폼페이 또한 영화 내 장소로 쓰인다.

※ 기타 예시 작성시 의미가 통하는 문장이거나 단어 간의 수식ㆍ설명ㆍ인과 등의 밀접한 관계가 있어야 한다. 특히 연관 없는 고유 인명의 나열은 피하자.
금강산
강원도
산도적
개똥아
똥쌌니
아니요
곰돌아
돌았니
아니요
라팔
팔렸니
아니요
김정은
정당성
성립
불고기
고추장
기장떡
개죽아
죽었니
아니요
거북아
북치니
아니요
강서구
서민
구들장
작성자
성기
자를까
귀신은
신발이
은이니
아란
란마
아니요
장하군
하남
군의관
라팔아
팔렸다
아다행
레앙아
앙리
아니요
공돌아
돌았니
아니요

4×4 사토르 마방진
문화방송
화상통신
방통위
송신가능
널지운다
지운다음
운다맨날
다음날도
꽃이피고나비가날아가지
이파리로만든악기다시금
피리리불어보고는그리도
고로불고이이운나일까바
나만어이뭐든하는지울라
비든보이든지오내울음보
가악고운하오라마음이면
날기는나는내마음이난날
아다그일지울음이난다아
가시리까울음이난다는가
지금도바라보면날아가지
- 이길수, <내 안의 퍼즐>
내쉰 한숨 한 줄기조차
쉰 살의 결단, 기억인가.
한의원의 계단에서 운
숨결의 혼 더 단단하게
한 단계 더 성장 지나, 참,
줄기 단단, 장미 꽃송이
기억에 단지 꽃 핀 신에,
조인서 하나 송신했지.
차가운 게 참 이에 지네.
- 헌옷수거함, <아홉수의 마방진>
생각보다 무서워서,
각오는 날리는 낙화,
보는 이가 한 명가에
다 날 가두고, 문득 난
무리한 고생 멈추고
서는 명문 멈칫하여,
워낙 가득 추하게 간
서화에 난 고여간다.
.
.
.
가제 : 여덟수의 마방진
- 헌옷수거함, <절필>
별빛이 쏟아진 밤 울어볼까,
빛나게 아름다워 어찌 품지?

이게 꺼진다면 낙천은 없고,
쏟아진 행운도 고사하고서
아름다운 해와 달빛 수없이
진다면 도와, 슬픈 날 보는 널,

밤, 워낙 고달픈 실수다 전부.
울어, 천사 빛날 수 있게, 더러
어찌 은하수보다 게을러진,
볼품없고 없는 전 더러웁고,
까지고서 이 널부러진 고독,

인 걸까요?
- 헌옷수거함, <별빛과 고독의 마방진>
이젠 잘 지내시나요.

젠장할 우리의 그 맘
잘할 거라며 웃을 때,

지우라던 마음 리본
내리며 마주 보던 눈,

시의 웃음보다 맘이...

나 그을리던 맘 접어
요맘때, 본 눈이어서
.
.
.
가제 : 여덟수의 마방진
- 헌옷수거함, <이젠 잘 지내시나요.>

4.1. 만드는 법

A B C
B D E
C E F
A, B, C, D, E, F에 대입해서 말이 되게 만들면 된다. 말이 쉽지

위의 예를 이용하자면
A B
B C
A, B를 넣은 뒤 C를 넣으면 된다.

5. 참고


[1] 여담으로 일본어로는 마법진과 발음이 같아서 일본 서브컬처에서도 종종 언급된다.[2] 2진법 숫자의 1과 0을 모조리 바꾸는 과정을 의미한다. 예를 들어서 1101의 보수는 0010이 된다. 실제로는 1101을 0000 1101로 봐서 1111 0010으로 만들어야 하지만, 여기서는 자리수는 무시.[3] 말은 어렵게 설명했지만, 실상은 전 단계의 수를 써 넣은 뒤, 전 단계의 수를 1과 0을 서로 바꿔서 뒤에 이어서 쓰면 된다.[4] 보통 뭔가가 아니라는 내용의 사토르 마방진은 '아니오'라고 알려져있는 경우가 더 많으나, '아니오'라고 하면 하오체가 되며, 흔히 쓰는 해요체에서는 '아니요'라고 해야 옳다. 어차피 '아니오'든 '아니요'든 사토르 마방진이 되는 데는 전혀 문제가 없기 때문에 혼용되고 있다. 이 문서에는 '아니요'로 통일했다.