Магічний квадрат

Магічний квадрат — це квадратна таблиця , заповнена числами таким чином, що сума чисел у кожному рядку, кожному стовпчику і на обох діагоналях однакова. Якщо в квадраті рівні суми чисел тільки в рядках і стовпцях, то він називається напівмагічним. Нормальним називається магічний квадрат, заповнений цілими числами від до . Магічний квадрат називається асоціативним або симетричним, якщо сума будь-яких двох чисел, розташованих симетрично щодо центру квадрата, дорівнює .

Нормальні магічні квадрати існують для всіх порядків , за винятком , хоча випадок тривіальний — квадрат складається з одного числа. Мінімальний нетривіальний випадок показаний нижче, він має порядок 3.

2 7 6 15
9 5 1 15
4 3 8 15
15 15 15 15 15

Сума чисел в кожному рядку, стовпчику і по діагоналях, називається магічною сталою, M. Магічна константа нормального магічного квадрата залежить тільки від n і визначається формулою:


Перші значення магічних констант наведені в наступній таблиці (послідовність A006003 з Онлайн енциклопедії послідовностей цілих чисел, OEIS):

Порядок n 3 4 5 6 7 8 9 10 11 12 13
Mn 15 34 65 111 175 260 369 505 671 870 1105

Історія

Квадрат Ло шу (Китай)

492
357
816

Ло шу (кит. | 洛書 | 洛书 | luò shū) Єдиний нормальний магічний квадрат 3 × 3. Був відомий ще в Стародавньому Китаї, перше зображення на черепаховому панцирі датується 2200 роком до н. е..

Квадрат, знайдений в Кхаджурахо (Індія)

712114
213811
163105
96154

Це найраніший з виявлених унікальний магічний квадрат, що був знайдений в написі XI століття в індійському місті Кхаджурахо. Це перший магічний квадрат, що відноситься до різновиду так званих «диявольських» квадратів.

Магічний квадрат Ян Хуея (Китай)

2729241336
91120223118
3225732123
14163430125
28615172619
1243335810

У 13 ст. математик Ян Хуей зайнявся проблемою методів побудови магічних квадратів. Його дослідження були потім продовжені іншими китайськими математиками. Ян Хуей розглядав магічні квадрати не тільки третього, а й більших порядків. Деякі з його квадратів були достатньо складні, однак він завжди давав правила для їх побудови. Він зумів побудувати магічний квадрат шостого порядку, причому останній виявився майже асоціативним (у ньому тільки дві пари центрально протилежних чисел, що виділені жирним шрифтом, не дають суму 37).

Квадрат Альбрехта Дюрера

163213
510118
96712
415141

Магічний квадрат 4 × 4, зображений на гравюрі Альбрехта Дюрера «Меланхолія I», вважається найбільш раннім в європейському мистецтві. Два середні числа в нижньому ряду вказують дату створення картини (1514, в таблиці виділено жирним). Сума чисел на будь-який горизонталі, вертикалі і діагоналі дорівнює 34. Ця сума також зустрічається в усіх кутових квадратах 2 × 2, в центральному квадраті (10 + 11 + 6 + 7), у квадраті з кутових клітин (16 + 13 + 4 + 1), в рядах чисел, побудованих «ходом коня» ((2 + 8 + 9 + 15) і (3 + 5 + 12 + 14)), прямокутниках, утворених парами середніх клітин на протилежних сторонах ((3 + 2 + 15 + 14) і (5 + 8 + 9 + 12)). Більшість додаткових симетрій пов'язано із тим, що сума будь-яких двох центрально симетрично розташованих чисел дорівнює 17.

Квадрати Генрі Дьюдені і Аллана Джонсона-молодшого

67143
133761
31737
3611937
4331541
7117329
67172313

Якщо в квадратну матрицю n × n заноситься не строго натуральний ряд чисел, то цей магічний квадрат нетрадиційний. Поряд представлені два такі магічні квадрати, заповнені в основному простими числами. Перший (має порядок n = 3) — квадрат Дьюдені, в якому сумма чисел будь-якого рядка = 111; другий (має порядок n = 4) — квадрат Джонсона, в якому сумма чисел будь-якого рядка = 120. Обидва вони були розроблені на початку двадцятого століття.

Наступний квадрат, побудований в 1913 році Дж. Н.Мансі, примітний тим, що він складений з 143 послідовних простих чисел за винятком двох моментів: залучена одиниця, яка не є простим числом, і не використано єдине парне просте число — 2.

18238218098117971929313312337
8983211796416316197096175343739
97227103107193557719727607139757281
223653499197109113563479173761587157
367379521383241467257263269167601599
349359353647389331317311409307293449
50352323333754739742117401271431433
229491373487461251443463137439457283
50919973541347191181569577571163593
661101643239691701127131179613277151
659673677683716761475974373341
8273751311787769773419149751

Види магічних квадратів

  • Нормальний (рос. нормальный, англ. normal) — магічний квадрат, заповнений цілими числами від до .
  • Напівмагічний (рос. полумагический, англ. semimagic) — магічний квадрат, заповненний числами від до , причому сума чисел по горизонталях і вертикалях дорівнює магічній константі, а по діагоналях ця умова не виконується.
  • Асоціативний (рос. ассоциативный, англ. mystic), або симетричний (рос. симетричный) — магічний квадрат, у якого сума будь-яких двох чисел, що розташовані симетрично відносно центра квадрата, дорівнює одному й тому ж числу: .
  • Пандіагональний (рос. пандиагональный, англ. Multimagic), або диявольський (рос. диявольский, англ. Satanic) — магічний квадрат, в якого сума чисел по ламаних діагоналях також дорівнює магічній константі.
  • Ідеальний (рос. идеальный, англ.) — магічний квадрат, що одночасно є пандіагональним і асоціативним.
  • Досконалий (рос. совершенный, англ.) — магічний квадрат четвертого порядку, що є пандіагональним та має ряд додаткових властивостей. Всі магічні квадрати 4 порядку є досконалими.
  • Бімагічний (рос. бимагический, англ. bimagic) — магічний квадрат, що залишається магічним після заміни всіх його елементів на їх квадрати. Бімагічних квадрати 3, 4 і 5 порядків не існує.
  • Мультимагічний (рос. мультимагический, англ. multimagic) — узагальнення властивостей бімагічних квадратів на довільний степінь .
  • Квадрати Б. Франкліна (рос. квадраты Б. Франклина) — магічні квадрати, які крім основних властивостей мають додаткові унікальні особливості.

Побудова магічних квадратів

Способи побудови магічних квадратів поділяються на три категорії в залежності від того, магічний квадрат якого порядку ви хочете побудувати:

  • непарний;
  • дорівнює непарному числу, помноженому на 2;
  • дорівнює натуральному числу, помноженому на 4.

Загальний метод побудови магічних квадратів всіх типів невідомий, а можливо і не існує, хоча широко застосовуються різні спеціалізовані алгоритми. Знайти всі магічні квадрати порядку n вдається тільки для , тому становлять великий інтерес способи побудови магічних квадратів при . Найпростішим є алгоритм побудови магічного квадрата непарного порядку. Якщо присвоїти клітинкам квадрата координати, наприклад , то значення числа в клітинці можна розрахувати за формулою .

Також розроблені алгоритми побудови пандіагональних квадратів, та ідеальних магічних квадратів 9 порядку. Ці результати дозволяють будувати ідеальні магічні квадрати порядків . Існують також загальні методи компонування ідеальних магічних квадратів непарного порядку . Розроблено методи побудови ідеальних магічних квадратів порядку , де , і досконалих магічних квадратів. Пандіагональні та ідеальні квадрати парного-непарного порядку вдається скомпонувати лише в тому випадку, якщо вони нетрадиційні. Тим не менш, можна знаходити майже пандіагональні квадрати. Знайдена особлива група ідеально-досконалих магічних квадратів (традиційних і нетрадиційних).

Метод побудови магічного квадрата непарного порядку

Описаний французьким дипломатом de la Loubère у його книзі «A new historical relation of the kingdom of Siam»

Побудова починається з центральної клітинки верхнього ряду, куди ми вписуємо 1. Надалі ми будемо рухатися на одну клітинку вгору і вправо за один крок вписуючи послідовний ряд чисел від до . Якщо ми дійшли до правого стовпця чи верхнього рядка, то з наступним кроком пересуваємось до протилежного лівого чи нижнього краю відповідно. Якщо наступна клітинка вже зайнята, то просто рухаємось на 1 клітинку вниз. Продовжуємо виконувати ці кроки разів, доки не заповнимо всі клітинки.

крок 1
1
.
.
крок 2
1
.
2
крок 3
1
3
2
крок 4
1
3
42
крок 5
1
35
42
крок 6
16
35
42
крок 7
16
357
42
крок 8
816
357
42
крок 9
816
357
492

Можна починати будувати магічний квадрат і з інших клітин верхнього ряду, проте тоді сумма діагоналей не буде рівною магічній константі(отримаємо напівмагічний квадрат). В процесі побудови можна вибрати й інший напрям руху(вгору і вліво, вниз і вліво, вниз і вправо). Як результат знову отримаємо справжній магічний квадрат.

Метод терас

Описаний Ю. В. Чебраковим у «Теорії магічних матриць».

Для заданого непарного накреслимо квадратну таблицю розміром . Добудуємо до цієї таблиці з усіх чотирьох сторін тераси (пірамідки). В результаті отримаємо ступінчасту симетричну фігуру. Починаючи з лівої вершини ступінчастої фігури, заповнимо її діагональні ряди послідовними натуральними числами від до .

4 5
3 4 10
2 3 9 15
1 2 8 14 20
0 1 7 13 19 25
-1 6 12 18 24
-2 11 17 23
-3 16 22
-4 21
.
-4 -3 -2 -1 0 1 2 3 4

Після цього для отримання класичної матриці порядку n, що знаходяться в терасах, поставимо на ті місця таблиці розміром , в яких вони були б, якщо переміщати їх разом з терасами до того моменту, поки підстави терас не долучаться до протилежної сторони таблиці.

4
3
2 3 16 9 22 15
1 20 8 21 14 2
0 7 25 13 1 19
-1 24 12 5 18 6
-2 11 4 17 10 23
-3
-4
.
-4 -3 -2 -1 0 1 2 3 4


31692215
20821142
72513119
24125186
114171023

Приклади програмної реалізації алгоритмів побудови магічних квадратів

Побудова

Метод терас (квадрати непарного порядку). Реалізація на мові програмування Python 3:

from collections import defaultdict

def recursive_defaultdict():
    return defaultdict(recursive_defaultdict)

def create_magic_square(N):
    assert(N % 2 == 1)
    arr = recursive_defaultdict()

    # Створення ступінчастої симетричної фігури
    num = 1
    ii = (N + 1) // 2
    jj = 2 - ii
    while num < N**2:
        i, j = ii, jj
        while i + 1 != jj:
            arr[i][j] = num
            i, j, num = i-1, j+1, num+1
        ii, jj = ii+1, jj+1

    # Заповнення лівої частини квадрата, щодо 
    # лівої діагоналі (саму діагональ не чіпаємо) 
    ii, jj = 1, N
    while ii < N and jj > 1:
        for j in range(1, jj+1):
            if ii not in arr or j not in arr[ii]:
                if ii + N in arr and j in arr[ii + N]:
                    arr[ii][j] = arr[ii+N][j]
                else:
                    arr[ii][j] = arr[ii][j+N]
        ii, jj = ii+1, jj-1

    # Заповнення правої частини квадрата, щодо 
    # лівої діагоналі (саму діагональ не чіпаємо) 
    jj = N - 2
    for i in range(N, 1, -1):
        for j in range(N, N-jj-1, -1):
            if i not in arr or j not in arr[i]:
                if i-N in arr and j in arr[i-N]:
                    arr[i][j] = arr[i-N][j]
                else:
                    arr[i][j] = arr[i][j-N]
        jj -= 1

    # Конвертуємо з асоціативного у лінійний масив
    square = [[arr[i][j] for j in range(1,N+1)] for i in range(1,N+1)]
    return square

Джерела

Я. В. Успенский, «Избранные математические развлечения»
Н. М. Рудин, «От магического квадрата к шахматам»
Б. А. Кордемский, «Математическая смекалка»
Е. Я. Гуревич, «Тайна древнего талисмана»
М. М. Постников, «Магические квадраты»

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.