Н. Макарова
ПОСТРОЕНИЕ НАИМЕНЬШЕГО ПАНДИАГОНАЛЬНОГО КВАДРАТА 6-го ПОРЯДКА ИЗ ЧИСЕЛ СМИТА
Начинаю писать статью о задаче построения наименьшего пандиагонального квадрата 6-го порядка из чисел Смита. Давно собираюсь написать эту статью, но никак не могу оторваться от экспериментов. Это задача очень сложная. Её решают уже довольно долго. На форуме dxdy.ru задачу решали мои коллеги М. Алексеев, С. Беляев, В. Павловский. Задача предлагалась в проводимом мной на этом форуме конкурсе «Нетрадиционные пандиагональные квадраты» (см. [6]). И до сих пор задача не решена, по моим сведениям. Возможно, кто-то и решил задачу, но сообщения на форуме об этом не было. Поэтому я продолжаю решать задачу. Написано уже несколько программ, рассмотрены разные алгоритмы и комбинации алгоритмов, однако решения не получено.
Напомню, что С. Беляев разработал очень хороший алгоритм построения нетрадиционных пандиагональных квадратов 6-го порядка. (Как известно, классических пандиагональных квадратов данного порядка не существует.) С помощью этого алгоритма ему удалось найти наименьший пандиагональный квадрат 6-го порядка из простых чисел с магической константой 486. Это замечательный результат! Он внесён в OEIS, в статье A179440 приведены три магические константы наименьших пандиагональных квадратов из простых чисел для порядков 4 – 6, эти константы таковы: 240, 395, 486 соответственно (см. [5]).
Квадрат порядка 4 найден мной, квадрат порядка 5 нашёл В. Павловский, и квадрат 6-го порядка найден С. Беляевым. Вот такая великолепная троица магических констант. Для всех следующих порядков (до 13 включительно) пандиагональные квадраты из простых чисел построены, но не доказана их минимальность. Поэтому в статье приведены верхние границы для магических констант пандиагональных квадратов следующих порядков.
Из чисел Смита найдены наименьшие пандиагональные квадраты порядков 4 и 5. А вот наименьший квадрат 6-го порядка пока не найден.
По программе С. Беляева мне удалось построить несколько пандиагональных квадратов из смитов, самая меньшая магическая константа из всех полученных 5964. Покажу этот квадрат (рис. 1):
22 |
2902 |
94 |
1633 |
202 |
1111 |
265 |
634 |
562 |
391 |
1894 |
2218 |
1642 |
1219 |
1678 |
985 |
319 |
121 |
355 |
526 |
913 |
1966 |
346 |
1858 |
2785 |
166 |
922 |
535 |
1282 |
274 |
895 |
517 |
1795 |
454 |
1921 |
382 |
Рис. 1
Наименьший обычный магический квадрат 6-го порядка из чисел Смита имеет магическую константу 2472. Вполне возможно, что существует пандиагональный квадрат с магической константой меньше 5964. Однако найти его не удаётся. А как иначе доказать, что найденный квадрат с магической константой 5964 является наименьшим?
Не буду здесь повторять изложение алгоритма С. Беляева. Его можно найти на форуме dxdy.ru ([1], стр. 131), а также в моей статье [2]. С. Беляев реализовал свой алгоритм, программа выложена на форуме и на его сайте [4]. Я пользуюсь этой программой, хотя тоже написала программу, реализующую этот алгоритм. Но моя программа работает медленнее, чем программа Беляева. Поэтому, когда у меня есть готовый набор комплектов отклонений, я пользуюсь его программой. А вот комплекты отклонений ищу по своей программе. Как они ищутся, расскажу далее.
Приведу два интересных примера.
Пример 1. Это найденный мной самым первым (не считая давно известного пандиагонального квадрата из последовательных простых чисел с магической константой 930) пандиагональный квадрат из простых чисел, который получен из ассоциативного квадрата применением преобразования 3-х квадратов. Понятно, что этот квадрат построен из комплементарных пар чисел, причём так, что все отклонения равны 0. На рис. 2 представлен этот квадрат (см. [3]).
11 |
197 |
17 |
167 |
47 |
191 |
181 |
31 |
173 |
61 |
131 |
53 |
139 |
59 |
137 |
103 |
109 |
83 |
43 |
163 |
19 |
199 |
13 |
193 |
149 |
79 |
157 |
29 |
179 |
37 |
107 |
101 |
127 |
71 |
151 |
73 |
Рис. 2
Вот набор из 19 комплементарных пар простых чисел с суммой в паре 210, из чисел которого построен этот квадрат:
11 13 17 19 29 31 37 43 47 53 59 61 71 73 79 83 97 101 103 199 197 193 191 181 179 173 167 163 157 151 149 139 137 131 127 113 109 107
Сумма чисел в комплементарной паре называется константой комплементарности. Если квадрат ассоциативный, то константа комплементарности является константой ассоциативности.
Очевидно, что для квадрата 6-го порядка константа комплементарности K = S/3, S – магическая константа квадрата.
В следующем примере показан пандиагональный квадрат, который обладает свойством ассоциативности, то есть является идеальным.
Пример 2. Это наименьший идеальный квадрат 6-го порядка из чисел Смита (рис. 3). Автор квадрата М. Алексеев (см. [1], стр. 107).
7195 |
4306 |
17149 |
23566 |
2362 |
23962 |
22738 |
9094 |
24538 |
9634 |
4702 |
7834 |
23089 |
166 |
9535 |
18022 |
6502 |
21226 |
4954 |
19678 |
8158 |
16645 |
26014 |
3091 |
18346 |
21478 |
16546 |
1642 |
17086 |
3442 |
2218 |
23818 |
2614 |
9031 |
21874 |
18985 |
Рис. 3
Этот квадрат построен из следующего набора из 68 комплементарных пар смитов с суммой в паре 26180:
166 274 346 382 562 913 958 985 1165 1642 1678 1858 1921 1966 2038 2218 2227 2326 2362 2515 2578 2614 3091 3442 3595 3622 3946 4126 4306 4414 4702 4918 4954 5269 5485 5602 5638 5674 5818 5854 5998 6115 6502 6934 7186 7195 7339 7438 7726 7762 7784 7834 8095 8158 8347 8518 8545 9031 9094 9535 9598 9634 9742 9895 10296 10664 11065 11686 14494 15115 15516 15884 16285 16438 16546 16582 16645 17086 17149 17635 17662 17833 18022 18085 18346 18396 18418 18454 18742 18841 18985 18994 19246 19678 20065 20182 20326 20362 20506 20542 20578 20695 20911 21226 21262 21478 21766 21874 22054 22234 22558 22585 22738 23089 23566 23602 23665 23818 23854 23953 23962 24142 24214 24259 24322 24502 24538 25015 25195 25222 25267 25618 25798 25834 25906 26014
Магическая константа квадрата равна 78540.
Хотя этот пандиагональный квадрат построен из комплементарных пар чисел, но отклонения от комплементарности в нём не равны 0 (кроме одного).
В самом деле, имеем:
K = 26180
p1 = 7195 + 16645 – 26180 = -2340
p2 = 4306 + 26014 – 26180 = 4140
p3 = 17149 + 3091 – 26180 = -5940
p4 = 22738 + 1642 – 26180 = -1800
p5 = 9094 + 17086 – 26180 = 0
p6 = 24538 + 3442 – 26180 = 1800
p7 = 23089 + 9031 – 26180 = 5940
p8 = 166 + 21874 – 26180 = -4140
p9 = 9535 + 18985 – 26180 = 2340
*****
В связи с этой задачей возникли две интересные гипотезы, которые не доказаны. Приведу эти гипотезы.
Гипотеза № 1. Магические константы пандиагональных квадратов 6-го порядка из чисел Смита являются членами арифметической прогрессии с разностью 108.
Эта гипотеза возникла из экспериментальных данных. Все найденные мной по программе Беляева пандиагональные квадраты являются членами такой арифметической прогрессии. Заодно покажу здесь и все эти пандиагональные квадраты. Квадрат с магической константой 5964 уже показан выше (см. рис. 1).
517 85 913 958 1633 2182
922 58 2326 1921 355 706
1894 1822 319 166 121 1966
202 1255 562 2515 1219 535
895 1165 526 454 2614 634
1858 1903 1642 274 346 265
1: S=6288 p2,4,6,8=-792 -720 864 72
1111 391 166 895 1903 1822
1255 2578 634 202 1165 454
526 1633 562 1507 1678 382
265 985 922 1921 913 1282
2614 355 778 121 94 2326
517 346 3226 1642 535 22
2: S=6288 p2,4,6,8=-792 -720 864 72
913 1219 1903 1921 346 94
1966 121 535 634 1858 1282
1678 526 517 1642 778 1255
319 2434 2182 1111 265 85
958 58 274 706 2227 2173
562 2038 985 382 922 1507
1: S=6396 p2,4,6,8=-648 540 576 -684
1255 265 166 526 2614 1678
319 1219 1966 2461 85 454
778 2434 382 517 355 2038
922 562 274 1633 895 2218
391 1111 1894 1165 1921 22
2839 913 1822 202 634 94
1: S=6504 p2,4,6,8=-1008 -684 -180 900
391 166 778 2974 2218 85
1219 2326 913 22 94 2038
121 1678 562 1255 382 2614
58 202 2911 985 1822 634
2902 346 922 265 1642 535
1921 1894 526 1111 454 706
1: S=6612 p2,4,6,8=-216 -720 -756 -72
535 526 1966 355 1165 2173
58 2155 265 562 2038 1642
2362 1255 922 1822 85 274
985 1111 319 2605 1678 22
2578 166 346 1282 121 2227
202 1507 2902 94 1633 382
1: S=6720 p2,4,6,8=-36 -900 252 648
562 2038 1642 58 2155 265
355 1165 2173 535 526 1966
94 1633 382 202 1507 2902
1282 121 2227 2578 166 346
2605 1678 22 985 1111 319
1822 85 274 2362 1255 922
2: S=6720 p2,4,6,8=-36 -900 252 648
454 1111 2326 2038 517 274
895 1966 346 382 85 3046
265 535 1822 526 1678 1894
706 1219 1858 1282 1633 22
2218 1795 166 985 634 922
2182 94 202 1507 2173 562
1: S=6720 p2,4,6,8=504 -360 -972 468
517 2038 2326 1111 454 274
85 382 346 1966 895 3046
1678 526 1822 535 265 1894
1633 1282 1858 1219 706 22
634 985 166 1795 2218 922
2173 1507 202 94 2182 562
2: S=6720 p2,4,6,8=504 -360 -972 468
1165 382 1642 958 355 2218
391 2227 202 1678 1903 319
1966 1111 922 22 2182 517
562 2461 454 1795 1282 166
778 265 985 1633 85 2974
1858 274 2515 634 913 526
1: S=6720 p2,4,6,8=-576 -216 936 -216
22 1633 2362 391 346 1966
202 1795 265 2038 1642 778
1903 319 1507 634 535 1822
2173 1282 94 1894 1219 58
562 526 2326 1678 517 1111
1858 1165 166 85 2461 985
1: S=6720 p2,4,6,8=612 -360 -864 540
22 1633 2362 391 517 1795
202 1966 94 2038 1642 778
1903 319 1507 634 535 1822
2173 1111 265 1894 1219 58
562 526 2326 1678 346 1282
1858 1165 166 85 2461 985
2: S=6720 p2,4,6,8=612 -360 -864 540
895 1678 2785 1111 274 517
265 94 922 1282 1858 2839
1642 2182 391 985 2038 22
1921 2326 1219 913 562 319
382 526 121 2911 2362 958
2155 454 1822 58 166 2605
1: S=7260 p2,4,6,8=-180 756 -540 -72
94 2785 1903 1858 1165 535
2434 265 958 1795 166 2722
1507 202 2362 382 1921 1966
1282 1255 2605 2326 355 517
985 2614 58 346 2515 1822
2038 1219 454 1633 2218 778
1: S=8340 p2,4,6,8=360 0 0 -360
94 2785 1903 1858 1165 535
985 2614 58 346 2515 1822
1507 202 2362 382 1921 1966
1282 1255 2605 2326 355 517
2434 265 958 1795 166 2722
2038 1219 454 1633 2218 778
2: S=8340 p2,4,6,8=360 0 0 -360
94 2785 1894 958 1903 706
2614 2218 202 319 2722 265
535 1255 913 1966 1633 2038
2182 517 2434 2326 355 526
2461 58 2515 166 562 2578
454 1507 382 2605 1165 2227
3: S=8340 p2,4,6,8=360 0 0 -360
94 2785 1894 958 1903 706
2461 58 2515 166 562 2578
535 1255 913 1966 1633 2038
2182 517 2434 2326 355 526
2614 2218 202 319 2722 265
454 1507 382 2605 1165 2227
4: S=8340 p2,4,6,8=360 0 0 -360
Примечание: программа Беляева выводит после каждого квадрата его магическую константу и набор базовых отклонений p2, p4, p6, p8. Базовые отклонения – это четыре независимых отклонения, по которым вычисляются остальные пять отклонений.
Итак, ряд полученных магических констант:
5964, 6288, 6396, 6504, 6612, 6720, 7260, 8340
Заметим, что и магическая константа наименьшего идеального квадрата (см. рис. 3) 78540 тоже находится в этой арифметической прогрессии.
Таковы экспериментальные данные. Насколько они подтверждают верность высказанной гипотезы, трудно сказать. Надо либо доказать гипотезу теоретически, либо найти опровергающий её пример.
И ещё один пример в подтверждение гипотезы. На рис. 3а вы видите пандиагональный квадрат, полученный преобразованием 3-х квадратов из наименьшего ассоциативного квадрата из смитов (автор квадрата М. Алексеев, см. [1], стр. 109).
2722 |
2326 |
1255 |
4054 |
958 |
2965 |
2182 |
391 |
2902 |
634 |
4306 |
3865 |
4198 |
2605 |
2839 |
4414 |
58 |
166 |
706 |
3802 |
1795 |
2038 |
2434 |
3505 |
4126 |
454 |
895 |
2578 |
4369 |
1858 |
346 |
4702 |
4594 |
562 |
2155 |
1921 |
Рис. 3а
Магическая константа равна 14280. Очевидно, что она из той же самой арифметической прогрессии.
Кстати, интересно отметить, что магические константы пандиагональных квадратов 6-го порядка из простых чисел являются членами арифметической прогрессии с разностью 12:
486, 498, 510, 522, 534, 546, 558, 570, 582, 594, …
Гипотеза № 2. Пандиагональные квадраты 6-го порядка можно составить только из чисел Смита равных 4(mod 9).
Эта гипотеза тоже возникла из экспериментальных данных. Все известные пандиагональные квадраты из чисел Смита составлены только из чисел равных 4(mod 9).
Мне удалось доказать, что в рассматриваемом нами диапазоне магических констант пандиагональный квадрат не может быть составлен из других одинаковых вычетов 0, 1, 2, 3, 5, 6, 7, 8 по модулю 9.
Приведу это доказательство.
Смиты, равные 0(mod 9) (из первых 400 смитов получены):
27 378 576 648 666 729 1449 1755 1872 1881 1908 1935 1962 2079 2286 2475 2484 2556 2583 2745 2934 2970 3168 3258 3294 3366 3564 3663 3690 3852 4185 4428 4464 4743 4788 4959 5526 6084 7119 7227 7695 8073 8154 8253 8307 8568 8766 8874 8883 8901 9036 9387 9396 9414 9522 9639 9648 9657 9684 10296 10494 10791 10845
Сумма первых 36 чисел равна 94320, что может дать минимальную магическую константу 15720.
Это смиты, равные 1(mod 9), получены из первых 700 смитов:
2944 4960 5248 6760 14464 15778 16192 16480 17056 18496 18865 19360
Тут всё ясно, если найти 36 таких смитов, их сумма будет очень большая.
Это смиты, равные 2(mod 9), тоже из 700 первых смитов получены:
2576 4592 4880 5915 8372 12656 14168 14672 14924 15824 15860 16688 16940 17840 17885 18920 19280
Всего 17 штук. Тоже всё ясно.
Далее смиты, равные 3(mod 9), из тех же 700 первых смитов:
588 1776 2964 3864 4557 5088 5772 6096 6816 7068 7824 9633 9840 9849 9975 11388 11739 12558 12648 12675 12684 13764 14736 16536 16653 16770 17238 17940 18732 19272 19812 20784
32 штуки, тоже все большие числа получились.
Смиты, равные 5(mod 9), тоже из 700 первых смитов, всего 9 штук:
5936 6188 7952 9968 11696 11984 14756 16592 19292
Тоже всё ясно.
Это смиты, равные 6(mod 9), тоже из 700 первых смитов, 154 штуки:
438 483 627 636 645 654 663 690 762 825 852 861 915 1086 1284 1581 1626 1842 2067 2265 2373 2409 2679 2688 2751 2958 3138 3174 3246 3345 3390 3615 3930 4173 4191 4209 4794 4974 5172 5253 5298 5388 5397 5874 5946 6036 6054 6171 6252 6315 6531 6567 6585 6603 6684 6693 6702 6855 6981 7026 7062 7089 7287 7503 7674 7683 7764 7782 7809 8196 8277 8412 8421 8466 8628 8736 8754 8790 9015 9276 9285 9294 9330 9483 9708 9717 9735 9843 9861 9924 9942 10086 10419 10689 10698 10761 10797 10806 10887 11679 12318 12732 12795 12939 12957 12975 13506 13812 13974 14046 14784 14946 14991 15018 15126 15369 15558 15747 15882 15981 16098 16269 16647 16746 16890 17187 17268 17646 17664 17718 17754 17826 17835 17889 17907 17916 18069 18132 18177 18474 18618 18735 19212 19428 19482 19554 19590 19644 19725 19761 19941 20229 20319 20823
Сумма первых 36 чисел равна 73071, тоже не годится для нужных нам магических констант.
Смитов, равных 7(mod 9), из 700 первых смитов нашлось всего 2 штуки:
9880 13984
Тоже всё ясно.
Смиты, равные 8(mod 9), из первых 700 смитов, 42 штуки:
728 1376 1736 1952 2366 2888 4472 4832 5642 6344 7136 7712 7784 8792 8864 9296 9386 10592 10664 10736 11816 13454 13472 14534 15128 15704 15848 15884 15974 16568 17738 17864 18278 18872 19232 19376 19592 19808 19880 19943 19952 20618
Очевидно, что сумма первых 36 чисел будет большая. Значит, тоже не годится.
Однако гипотеза не доказана для комбинаций разных вычетов. Не доказана она и для больших магических констант.
Если обе приведённые гипотезы верны, то потенциальными магическими константами для искомого квадрата являются следующие константы:
3912, 4020, 4128, 4236, 4344, 4452, 4560, 4668, 4776, 4884, 4992, 5100, 5208, 5316, 5424, 5532, 5640, 5748, 5856
С какой же из этих магических констант пандиагональный квадрат существует? И существует ли вообще? Забегая вперёд, скажу, что для первой магической константы в этом ряду – 3912 – мне удалось по своей последней программе выполнить полный перебор. Квадрат не найден.
*****
Сейчас решила попробовать найти по программе Беляева пандиагональные квадраты с магической константой больше 5964, которые ещё не найдены. С ходу получились квадраты с константой 7476:
265 535 355 2173 2182 1966
1894 2326 634 562 2038 22
2722 121 2362 958 58 1255
391 346 1678 2155 1921 985
1822 454 1282 706 166 3046
382 3694 1165 922 1111 202
1: S=7476 p2,4,6,8=-36 108 1188 -1260
265 382 1822 391 2722 1894
1966 202 3046 985 1255 22
2182 1111 166 1921 58 2038
2173 922 706 2155 958 562
355 1165 1282 1678 2362 634
535 3694 454 346 121 2326
2: S=7476 p2,4,6,8=-1152 1152 1188 -1260
454 3694 535 2326 121 346
1282 1165 355 634 2362 1678
706 922 2173 562 958 2155
166 1111 2182 2038 58 1921
3046 202 1966 22 1255 985
1822 382 265 1894 2722 391
3: S=7476 p2,4,6,8=1260 -1188 -1152 1152
166 3046 1822 454 1282 706
1111 202 382 3694 1165 922
2182 1966 265 535 355 2173
2038 22 1894 2326 634 562
58 1255 2722 121 2362 958
1921 985 391 346 1678 2155
4: S=7476 p2,4,6,8=1188 -1260 -1152 1152
454 1822 3046 166 706 1282
346 391 985 1921 2155 1678
121 2722 1255 58 958 2362
2326 1894 22 2038 562 634
535 265 1966 2182 2173 355
3694 382 202 1111 922 1165
5: S=7476 p2,4,6,8=-108 36 -1152 1152
166 1921 58 2038 2182 1111
706 2155 958 562 2173 922
1282 1678 2362 634 355 1165
454 346 121 2326 535 3694
1822 391 2722 1894 265 382
3046 985 1255 22 1966 202
6: S=7476 p2,4,6,8=-36 108 -1152 1152
562 958 2155 706 922 2173
634 2362 1678 1282 1165 355
2326 121 346 454 3694 535
1894 2722 391 1822 382 265
22 1255 985 3046 202 1966
2038 58 1921 166 1111 2182
7: S=7476 p2,4,6,8=-1152 1188 1152 -1260
562 2038 22 1894 2326 634
2173 2182 1966 265 535 355
922 1111 202 382 3694 1165
706 166 3046 1822 454 1282
2155 1921 985 391 346 1678
958 58 1255 2722 121 2362
8: S=7476 p2,4,6,8=0 72 1152 -1260
166 1111 2182 2038 58 1921
3046 202 1966 22 1255 985
1822 382 265 1894 2722 391
454 3694 535 2326 121 346
1282 1165 355 634 2362 1678
706 922 2173 562 958 2155
9: S=7476 p2,4,6,8=-1260 1188 1152 -1152
454 1282 706 166 3046 1822
3694 1165 922 1111 202 382
535 355 2173 2182 1966 265
2326 634 562 2038 22 1894
121 2362 958 58 1255 2722
346 1678 2155 1921 985 391
10: S=7476 p2,4,6,8=-1188 1260 1152 -1152
166 706 1282 454 1822 3046
1921 2155 1678 346 391 985
58 958 2362 121 2722 1255
2038 562 634 2326 1894 22
2182 2173 355 535 265 1966
1111 922 1165 3694 382 202
11: S=7476 p2,4,6,8=108 -36 1152 -1152
454 346 121 2326 535 3694
1822 391 2722 1894 265 382
3046 985 1255 22 1966 202
166 1921 58 2038 2182 1111
706 2155 958 562 2173 922
1282 1678 2362 634 355 1165
12: S=7476 p2,4,6,8=36 -108 1152 -1152
1165 355 634 2362 1678 1282
922 2173 562 958 2155 706
1111 2182 2038 58 1921 166
202 1966 22 1255 985 3046
382 265 1894 2722 391 1822
3694 535 2326 121 346 454
13: S=7476 p2,4,6,8=-1152 1152 -108 36
382 265 1894 2722 391 1822
202 1966 22 1255 985 3046
1111 2182 2038 58 1921 166
922 2173 562 958 2155 706
1165 355 634 2362 1678 1282
3694 535 2326 121 346 454
14: S=7476 p2,4,6,8=-72 72 -1188 36
1165 355 634 2362 1678 1282
922 2173 562 958 2155 706
1111 2182 2038 58 1921 166
202 1966 22 1255 985 3046
382 265 1894 2722 391 1822
3694 535 2326 121 346 454
15: S=7476 p2,4,6,8=-1152 1152 -108 36
Для построения этих квадратов я использовала имеющийся у меня банк комплектов отклонений для пандиагональных квадратов из смитов. Такой же банк комплектов отклонений у меня есть и для пандиагональных квадратов из простых чисел. Банк я создала очень просто, записала в него все те комплекты отклонений, с которыми пандиагональные квадраты построились. Конечно, в идеале надо для каждой магической константы подбирать свои комплекты отклонений.
С этой магической константой построилось много квадратов, 15 штук. При этом комплекты отклонений не подбирались специально для этой магической константы.
*****
Теперь пора рассказать об алгоритмах. Одним из самых удачных надо признать алгоритм, в котором соединены метод С. Беляева и общая формула пандиагонального квадрата 6-го порядка. Эта формула приведена в [3]. Она получена решением системы линейных уравнений, описывающей пандиагональный квадрат. Продублирую здесь схему, по которой была получена общая формула (рис. 4). В формуле 16 свободных (независимых) переменных (они выделены на рис. 4 красным цветом) и 20 зависимых переменных.
a1 |
x1 |
a2 |
x2 |
a3 |
x3 |
x4 |
x5 |
x6 |
x7 |
x8 |
x9 |
x10 |
a4 |
x11 |
a5 |
x12 |
a6 |
x13 |
x14 |
x15 |
x16 |
x17 |
x18 |
a7 |
x19 |
a8 |
x20 |
a9 |
x21 |
x22 |
a10 |
x23 |
a11 |
x24 |
a12 |
Рис. 4
Расскажу подробно, как же составлялась программа, реализующая данный алгоритм. Все обозначения элементов даются по приведённой на рис. 4 схеме.
Сразу отмечу, что программа составлялась в предположении, что квадрат строится из массива, состоящего из 36 чисел. В этом случае мы можем зафиксировать один из свободных элементов, так как в пандиагональном квадрате любой из элементов можно сделать угловым с помощью параллельного переноса на торе. Я фиксирую угловой элемент a12. Теперь у нас остаётся 15 свободных переменных. Отмечу, что в этой программе некоторые зависимые переменные стали свободными и наоборот, но это не меняет общего соотношения свободных и зависимых переменных.
Итак, подробно описываю все этапы программы.
1 этап. Задаём a10, a11, x22, x23. Вычисляем x24.
2 этап. Задаём a4, x10, x11. Находим отклонения p7, p8, p9. Вычисляем, используя отклонения, a5, a6, x12.
3 этап. Задаём a1, a2, x16. Находим отклонение p1. Вычисляем x18.
Имеем 4 независимых отклонения: p1, p7, p8, p9. Находим остальные 5 отклонений по следующим формулам:
p6 = p1 – p8
p5 = -p1 – p9
p2 = p7 – p6
p3 = -p5 – p7
p4 = p3 –p8
Примечание: на этом этапе можно остановиться и выводить комплекты отклонений, чтобы потом проверить их по программе Беляева. Но их будет очень много.
Ещё замечу, что позже, работая с отклонениями, я поняла, что найденные на этом этапе отклонения надо бы проверить на принадлежность массиву всех возможных парных отклонений. Это, наверное, намного сократит перебор в данной программе. Если вернусь к этой программе, обязательно вставлю такую проверку.
Продолжаю рассказ о программе.
4 этап. Задаём a9. Вычисляем x5.
5 этап. Задаём a3. Вычисляем x14.
6 этап. Задаём a7. Вычисляем x7, a8, x9.
Примечание: Элемент a8 вычисляется по решётке Россера, по следующей формуле:
a8 = 3S/2 – a1 – a2 – a3 – x10 – x11 – x12 – a7 – a9.
7 этап. Задаём x15. Вычисляем x3, x21, x6.
8 этап. Задаём x20. Вычисляем все остальные элементы.
Вот и все этапы программы. Эта программа полностью отлажена и работает. Мне удалось выполнить по этой программе полную проверку магической константы 3912. Квадрат не нашёлся. Могу утверждать, что пандиагонального квадрата 6-го порядка из смитов с такой магической константой не существует. Однако проверить все потенциальные константы по этой программе сложно, так как выполняется она очень долго. И, кроме того, программа выполняет проверку только массива из 36 чисел. Для магической константы 3912 такой массив всего один, вот он:
4 22 58 85 94 121 166 202 265 274 319 346 355 382 391 454 517 526 535 562 634 706 778 895 913 922 958 985 1111 1165 1219 1255 1282 1507 1642 1822
Поэтому эту магическую константу было легко проверить. Для других же магических констант будет несколько потенциальных массивов из 36 чисел и надо проверять каждый из них.
Для тестирования программы я брала массив смитов для магической константы 5964, из которого квадрат уже известен. Первый найденный программой квадрат такой (рис. 5):
517 |
1795 |
454 |
1921 |
382 |
895 |
166 |
922 |
535 |
1282 |
274 |
2785 |
526 |
913 |
1966 |
346 |
1858 |
355 |
1219 |
1678 |
985 |
319 |
121 |
1642 |
634 |
562 |
391 |
1894 |
2218 |
265 |
2902 |
94 |
1633 |
202 |
1111 |
22 |
Рис. 5
Этот алгоритм был реализован и А. Черновым. Он тоже не нашёл пандиагонального квадрата с магической константой 3912. А для магической константы 5964 из заданного массива из 36 чисел (известный массив) получил 8 пандиагональных квадратов. Вот его результаты:
6:[p]:5964: 634,562,391,1894,2218,265,1219,1678,985,319,121,1642,526,913,1966,346,1858,355,166,922,535,1282,274,2785,517,1795,454,1921,382,895,2902,94,1633,202,1111,22
6:[p]:5964: 517,1795,454,1921,382,895,166,922,535,1282,274,2785,526,913,1966,346,1858,355,1219,1678,985,319,121,1642,634,562,391,1894,2218,265,2902,94,1633,202,1111,22
6:[p]:5964: 2218,1894,391,562,634,265,121,319,985,1678,1219,1642,1858,346,1966,913,526,355,274,1282,535,922,166,2785,382,1921,454,1795,517,895,1111,202,1633,94,2902,22
6:[p]:5964: 382,1921,454,1795,517,895,274,1282,535,922,166,2785,1858,346,1966,913,526,355,121,319,985,1678,1219,1642,2218,1894,391,562,634,265,1111,202,1633,94,2902,22
6:[p]:5964: 634,1219,526,166,517,2902,562,1678,913,922,1795,94,391,985,1966,535,454,1633,1894,319,346,1282,1921,202,2218,121,1858,274,382,1111,265,1642,355,2785,895,22
6:[p]:5964: 2218,121,1858,274,382,1111,1894,319,346,1282,1921,202,391,985,1966,535,454,1633,562,1678,913,922,1795,94,634,1219,526,166,517,2902,265,1642,355,2785,895,22
6:[p]:5964: 517,166,526,1219,634,2902,1795,922,913,1678,562,94,454,535,1966,985,391,1633,1921,1282,346,319,1894,202,382,274,1858,121,2218,1111,895,2785,355,1642,265,22
6:[p]:5964: 382,274,1858,121,2218,1111,1921,1282,346,319,1894,202,454,535,1966,985,391,1633,1795,922,913,1678,562,94,517,166,526,1219,634,2902,895,2785,355,1642,265,22
Представлю первый из этих квадратов в привычном виде (рис. 6):
634 |
562 |
391 |
1894 |
2218 |
265 |
1219 |
1678 |
985 |
319 |
121 |
1642 |
526 |
913 |
1966 |
346 |
1858 |
355 |
166 |
922 |
535 |
1282 |
274 |
2785 |
517 |
1795 |
454 |
1921 |
382 |
895 |
2902 |
94 |
1633 |
202 |
1111 |
22 |
Рис. 6
Этот квадрат отличается от квадрата, полученного по моей программе (рис. 5), переставленными строками. А второй квадрат Чернова в точности совпадает с найденным моей программой.
И ещё один тест – для магической константы 8340, тоже из известного массива из 36 чисел. Квадрат построился такой (рис. 7):
94 |
706 |
1903 |
958 |
1894 |
2785 |
454 |
2227 |
1165 |
2605 |
382 |
1507 |
2614 |
265 |
2722 |
319 |
202 |
2218 |
2182 |
526 |
355 |
2326 |
2434 |
517 |
535 |
2038 |
1633 |
1966 |
913 |
1255 |
2461 |
2578 |
562 |
166 |
2515 |
58 |
Рис. 7
Интересный комплект отклонений в этом квадрате: p1 = -360, p2 = 360, p3 = -360, p4 = -360, p5 = 360, p6 = -360, p7 = 0, p8 = 0, p9 = 0.
*****
Несколько замечаний.
1. Сделала небольшой массив из смитов, равных 4(mod 9). Взяла для этого первые 400 смитов. Получился массив из 189 смитов:
4 22 58 85 94 121 166 202 265 274 319 346 355 382 391 454 517 526 535 562 634 706 778 895 913 922 958 985 1111 1165 1219 1255 1282 1507 1633 1642 1678 1795 1822 1858 1894 1903 1921 1966 2038 2155 2173 2182 2218 2227 2326 2362 2434 2461 2515 2578 2605 2614 2722 2785 2839 2902 2911 2965 2974 3046 3091 3226 3442 3505 3595 3622 3649 3694 3802 3865 3946 3973 4054 4126 4162 4189 4198 4279 4306 4369 4414 4594 4702 4765 4855 4918 4954 4981 5062 5071 5098 5242 5269 5305 5386 5422 5458 5485 5539 5602 5638 5674 5818 5854 5926 5935 5998 6115 6178 6187 6259 6295 6385 6439 6457 6502 6583 6718 6835 6880 6934 7051 7078 7186 7195 7249 7339 7402 7438 7447 7465 7627 7726 7762 7834 7915 7978 8005 8014 8023 8077 8095 8149 8158 8185 8257 8347 8518 8545 8653 8680 8851 8914 9031 9094 9166 9184 9193 9229 9274 9301 9346 9355 9382 9427 9535 9571 9598 9634 9742 9760 9778 9895 9985 10201 10291 10462 10489 10579 10606 10669 10705 10786
Основываясь на приведённой выше гипотезе (хотя она и не доказана), я строю пандиагональные квадраты только из смитов, принадлежащих данному массиву.
Важно отметить: в программе Беляева (буду в дальнейшем для краткости называть эту программу программой А – самая важная программа) задействован весь массив смитов, он ничего не выбрасывает. И, тем не менее, ни один из построенных по этой программе квадратов не содержит смитов, не равных 4(mod 9).
2. Сначала описанный выше алгоритм был опробован на моей частной схеме (см. [2], рис. 10 – 11). В этой схеме всего три отклонения, при этом только два независимых, третье отклонение вычисляется по этим двум. Понятно, что частная схема даёт ограниченную группу пандиагональных квадратов. Зато она намного проще в реализации. Опробовав эту упрощённую схему, я перешла к общей схеме Беляева.
Для тестирования программы был взят массив чисел, составляющих наименьший идеальный квадрат с магической константой 78540 (см. рис. 3). Для этого массива строится очень много квадратов, приведу первые три квадрата.
2218 23089 22738 9535 2614 18346
26014 2362 4702 6502 21874 17086
9031 18022 9634 21226 18985 1642
16645 23566 7834 23962 3091 3442
19678 4306 9094 166 23818 21478
4954 7195 24538 17149 8158 16546
16645 23566 7834 23962 3091 3442
26014 2362 4702 6502 21874 17086
9031 18022 9634 21226 18985 1642
2218 23089 22738 9535 2614 18346
19678 4306 9094 166 23818 21478
4954 7195 24538 17149 8158 16546
2218 23089 22738 9535 2614 18346
23818 166 9094 4306 19678 21478
9031 18022 9634 21226 18985 1642
16645 23566 7834 23962 3091 3442
21874 6502 4702 2362 26014 17086
4954 7195 24538 17149 8158 16546
Заметьте, что квадраты пандиагональные, но не идеальные. Это понятно: свойство ассоциативности данный алгоритм не предусматривает.
И ещё один тест. Здесь квадраты строятся из массива, составляющего наименьший ассоциативный квадрат, найденный М. Алексеевым (полученный из него пандиагональный квадрат показан на рис. 3а). Магическая константа квадрата равна 14280. Квадратов тоже строится много, показываю первые три квадрата.
2038 634 4054 562 2578 4414
166 3865 2965 1921 1858 3505
2605 391 4702 2326 454 3802
4198 2182 346 2722 4126 706
2839 2902 1255 4594 895 1795
2434 4306 958 2155 4369 58
2038 634 4054 562 2578 4414
2839 2902 1255 4594 895 1795
2605 391 4702 2326 454 3802
4198 2182 346 2722 4126 706
166 3865 2965 1921 1858 3505
2434 4306 958 2155 4369 58
1795 895 4594 1255 2902 2839
706 4126 346 2722 2182 4198
3802 454 4702 2326 391 2605
3505 1858 1921 2965 3865 166
2038 2578 562 4054 634 4414
2434 4369 2155 958 4306 58
*****
Думаю, интересно рассказать и о варианте описанного алгоритма. Он состоит в следующем: убираю из программы 8 этап. Программа строит полуфабрикаты, в которых отсутствуют 8 чисел, и для каждого полуфабриката выводится комплект отклонений. Время выполнения такого варианта программы несколько меньше полного варианта, так как убирается одна свободная переменная, меньше на один вложенный цикл.
В результате выполнения этой программы я получила полный набор комплектов отклонений при условии, что правильно выбраны 28 элементов квадрата. Для магической константы 3912 этот набор состоит из 2088 комплектов отклонений. При этом я не проверяла комплекты отклонений на совпадение, возможно, имеются одинаковые. Вывела комплекты базовых отклонений и проверила их по программе А.
Проверились комплекты отклонений очень быстро, квадрат не найден.
Покажу несколько полуфабрикатов, которые выдаются программой для магической константы 3912.
45 63 63 -837 729 -855 -792 900 -774
391 0 1282 0 535 922
0 778 355 1507 0 1642
346 1219 526 274 382 1165
0 706 319 958 0 85
634 0 517 0 1255 94
1822 22 913 166 985 4
837 -729 855 -45 -63 -63 -792 900 -774
634 0 517 0 1255 94
0 706 319 958 0 85
346 1219 526 274 382 1165
0 778 355 1507 0 1642
391 0 1282 0 535 922
1822 22 913 166 985 4
-36 324 387 -369 81 -792 -468 756 -45
355 0 985 0 58 535
0 166 121 1111 0 1822
634 778 1255 265 526 454
0 922 382 913 0 706
562 0 274 0 1219 391
1507 22 895 202 1282 4
369 -81 792 36 -324 -387 -468 756 -45
562 0 274 0 1219 391
0 922 382 913 0 706
634 778 1255 265 526 454
0 166 121 1111 0 1822
355 0 985 0 58 535
1507 22 895 202 1282 4
720 -81 72 -684 45 -36 -117 756 -765
382 0 94 0 1111 454
0 958 913 166 0 1255
922 1165 535 202 526 562
0 274 778 1642 0 1282
1822 0 85 0 391 355
1219 22 1507 265 895 4
720 -81 72 -684 45 -36 -117 756 -765
382 0 121 0 1111 454
0 958 913 166 0 1282
922 1165 535 202 526 562
0 274 778 1642 0 1255
1822 0 58 0 391 355
1219 22 1507 265 895 4
Перед каждым полуфабрикатом выведен соответствующий ему комплект из 9 отклонений (в выходной файл я выводила комплект базовых отклонений p2, p4, p6, p8, который нужен для программы А).
Например, для первого полуфабриката
45 63 63 -837 729 -855 -792 900 -774
391 0 1282 0 535 922
0 778 355 1507 0 1642
346 1219 526 274 382 1165
0 706 319 958 0 85
634 0 517 0 1255 94
1822 22 913 166 985 4
имеем такой комплект отклонений:
p1 = 45, p2 = 63, p3 = 63, p4 = -837, p5 = 729, p6 = -855, p7 = -792, p8 = 900, p9 = -774,
а сам полуфабрикат имеет такой вид (рис. 8):
391 |
0 |
1282 |
0 |
535 |
922 |
0 |
778 |
355 |
1507 |
0 |
1642 |
346 |
1219 |
526 |
274 |
382 |
1165 |
0 |
706 |
319 |
958 |
0 |
85 |
634 |
0 |
517 |
0 |
1255 |
94 |
1822 |
22 |
913 |
166 |
985 |
4 |
Рис. 8
Таких полуфабрикатов с 8 «дырками» программа выдала 2088. Ни один из них до полного квадрата не достроился.
Немного проверяла по этой программе (для одного прохода внешнего цикла) и другие магические константы. Приведу несколько примеров.
Для магической константы 4020:
№ 1 -450 -279 -324 -531 1260 -657 -936 207 -810
535 0 922 0 454 1282
0 1894 517 958 0 1219
85 985 526 58 1111 1255
0 1165 382 355 0 94
913 0 778 0 706 166
2218 22 895 319 562 4
№ 2 531 -1260 657 450 279 324 -936 207 -810
913 0 778 0 706 166
0 1165 382 355 0 94
85 985 526 58 1111 1255
0 1894 517 958 0 1219
535 0 922 0 454 1282
2218 22 895 319 562 4
№ 3 1008 -441 783 -261 -306 -36 -477 1044 -702
454 0 1165 0 526 355
0 121 1219 319 0 1111
517 166 634 922 274 1507
0 1255 202 1894 0 958
1282 0 265 0 913 85
895 22 535 346 2218 4
№ 4 261 306 36 -1008 441 -783 -477 1044 -702
1282 0 265 0 913 85
0 1255 202 1894 0 958
517 166 634 922 274 1507
0 121 1219 319 0 1111
454 0 1165 0 526 355
895 22 535 346 2218 4
№ 5 990 639 -252 -1449 -180 -207 432 1197 -810
1219 0 382 0 166 85
0 958 355 895 0 1282
1255 319 526 634 121 1165
0 535 1507 1111 0 706
1894 0 265 0 202 778
274 22 985 517 2218 4
№ 6 1449 180 207 -990 -639 252 432 1197 -810
1894 0 265 0 202 778
0 535 1507 1111 0 706
1255 319 526 634 121 1165
0 958 355 895 0 1282
1219 0 382 0 166 85
274 22 985 517 2218 4
№ 7 -504 423 36 -504 585 -1044 -621 540 -81
319 0 1111 0 535 913
0 706 202 1282 0 2218
85 922 1255 454 778 526
0 382 391 517 0 265
562 0 166 0 1219 94
1507 22 895 634 958 4
Всего выдалось 14 полуфабрикатов. В выходной файл программа выводит, как уже сказано, набор базовых отклонений p2, p4, p6, p8, которые затем проверяются по программе А; здесь такой набор из 14 комплектов отклонений:
-279 -531 -657 207
-1260 450 324 207
-441 -261 -36 1044
306 -1008 -783 1044
639 -1449 -207 1197
180 -990 252 1197
423 -504 -1044 540
-585 504 -36 540
-279 -522 396 1260
855 -1656 -738 1260
864 -693 -756 405
-180 351 288 405
315 -432 297 540
720 -837 -108 540
Для магической константы 4128:
№ 1 252 -144 891 -9 -99 -648 -792 900 -153
706 0 985 0 355 94
0 958 382 274 0 1507
526 121 1219 913 454 895
0 1165 391 922 0 1282
1111 0 517 0 319 346
1255 22 634 58 2155 4
№ 2 9 99 648 -252 144 -891 -792 900 -153
1111 0 517 0 319 346
0 1165 391 922 0 1282
526 121 1219 913 454 895
0 958 382 274 0 1507
706 0 985 0 355 94
1255 22 634 58 2155 4
Выдалось всего два полуфабриката.
Для магической константы 4236:
№ 1 1377 -1260 612 387 -504 1152 -108 225 -873
355 0 913 0 2614 526
0 706 1642 634 0 166
85 382 535 562 1165 1507
0 58 274 2434 0 1111
391 0 94 0 202 922
958 22 778 1219 1255 4
№ 2 -387 504 -1152 -1377 1260 -612 -108 225 -873
391 0 94 0 202 922
0 58 274 2434 0 1111
85 382 535 562 1165 1507
0 706 1642 634 0 166
355 0 913 0 2614 526
958 22 778 1219 1255 4
Всего два экземпляра.
Подчеркну ещё раз, что это результаты выполнения всего одного прохода внешнего цикла.
Так как полное выполнение программы требует очень много времени даже в таком варианте, проверку прекратила.
*****
Начинаю рассказ об отклонениях. Тут начинается самое интересное и сложное.
Во-первых, как уже говорилось, алгоритм Беляева требует для построения пандиагонального квадрата некоторый набор базовых отклонений. Как искать этот набор, автор алгоритма не пояснил.
Во-вторых, моя работа с отклонениями началась сразу же, как только Беляев опубликовал свой алгоритм и выложил программу. Я сразу же начала экспериментировать с этой программой. Сначала нашла несколько пандиагональных квадратов из простых чисел. Затем перешла к квадратам из смитов.
Как же искать комплекты отклонений? Я делала это очень просто: искала такие комплекты отклонений, для которых имеется не менее m пар чисел. Для некоторых магических констант m = 6. Это очень высокая концентрация псевдокомплементарных пар, и вероятность найти квадрат с такими комплектами отклонений очень высокая. Так многие квадраты и были найдены.
А для некоторых магических констант нет ни одного комплекта отклонений, для которого пар не менее 6, тогда приходилось брать m = 5.
Вот такая у меня была простая методика поиска комплектов базовых отклонений.
Понятно, что эта методика работает только для тех случаев, когда пандиагональный квадрат существует. Тогда он находится достаточно быстро. Я находила наборы по 1000 комплектов отклонений. Для некоторых магических констант было достаточно одного набора, для других приходилось обработать несколько таких наборов.
Но для того, чтобы выяснить существует ли пандиагональный квадрат, необходим полный набор комплектов отклонений. Вот тут и начинаются сложности. Конечно, найти такой набор можно и не так уж сложно, но! Он будет содержать несколько миллионов комплектов отклонений, обработать их все по программе А нереально. В принципе это то же самое, что выполнить мою программу для описанного выше алгоритма. Много часов потребуется для обработки такого набора комплектов отклонений.
Теперь начала работать с отклонениями вплотную. Тут у меня очень много разных идей возникло, некоторые из них уже удалось реализовать. Но собрать их все в одну цельную программу пока не получается.
Экспериментирую с отдельными программками, написанными для каждого этапа, для каждой отдельной идеи. Иногда получаются интересные результаты. Но решения задачи пока, конечно, не получено.
Сначала беру массив из 36 чисел. Пусть, для примера, это будет массив для квадрата с магической константой 5964:
22 94 121 166 202 265 274 319 346 355 382 391 454 517 526 535 562 634 895 913 922 985 1111 1219 1282 1633 1642 1678 1795 1858 1894 1921 1966 2218 2785 2902
Пишу программку, которая находит все возможные отклонения и выбирает из них парные отклонения, то есть такие, которые есть и положительные и отрицательные, например: 72 и -72. Понятно, что всех возможных отклонений для массива из 36 чисел будет 630. Парных отклонений для данного массива получилось 498. Не буду показывать этот массив. Далее пишу программку, которая выбирает из этого массива парных отклонений разные отклонения. Вот такой получился массив разных парных отклонений:
-1872 -1773 -1764 -1728 -1701 -1692 -1665 -1620 -1611 -1584 -1575 -1548 -1539 -1512 -1503 -1485 -1476 -1449 -1440 -1431 -1368 -1359 -1341 -1332 -1323 -1314 -1305 -1296 -1287 -1269 -1260 -1251 -1233 -1215 -1197 -1188 -1179 -1152 -1143 -1125 -1116 -1089 -1080 -1071 -1062 -1044 -1035 -1017 -1008 -999 -981 -972 -963 -936 -927 -909 -900 -891 -873 -864 -855 -828 -819 -801 -792 -783 -756 -747 -729 -720 -702 -684 -675 -639 -621 -612 -603 -585 -576 -567 -558 -549 -540 -513 -504 -495 -468 -459 -450 -441 -432 -423 -387 -369 -360 -351 -342 -333 -324 -315 -288 -261 -252 -243 -225 -216 -207 -189 -180 -171 -153 -144 -135 -108 -99 -81 -72 -45 -36 -27 -9 0 9 27 36 45 72 81 99 108 135 144 153 171 180 189 207 216 225 243 252 261 288 315 324 333 342 351 360 369 387 423 432 441 450 459 468 495 504 513 540 549 558 567 576 585 603 612 621 639 675 684 702 720 729 747 756 783 792 801 819 828 855 864 873 891 900 909 927 936 963 972 981 999 1008 1017 1035 1044 1062 1071 1080 1089 1116 1125 1143 1152 1179 1188 1197 1215 1233 1251 1260 1269 1287 1296 1305 1314 1323 1332 1341 1359 1368 1431 1440 1449 1476 1485 1503 1512 1539 1548 1575 1584 1611 1620 1665 1692 1701 1728 1764 1773 1872
Этот массив содержит 243 отклонения.
Теперь определяю все возможные значения для отклонения p1. Тут исходим из того, что угловой элемент a11 у нас будет зафиксирован, это будет минимальное число исходного массива, здесь число 22. Это условие накладывает ограничения на значения отклонения p1.
Это все возможные значения для отклонения p1 (в массиве всех возможных отклонений первые 35 значений):
-1872 -1845 -1800 -1764 -1701 -1692 -1647 -1620 -1611 -1584 -1575 -1512 -1449 -1440 -1431 -1404 -1332 -1071 -1053 -1044 -981 -855 -747 -684 -333 -324 -288 -171 -108 -72 -45 0 252 819 936
Выбираем те, которые входят в массив разных парных отклонений:
-1872 -1764 -1701 -1692 -1620 -1611 -1584 -1575 -1512 -1449 -1440 -1431 -1332 -1071 -1044 -981 -855 -747 -684 -333 -324 -288 -171 -108 -72 -45 0 252 819 936
Осталось 30 штук.
Это первый этап работы с отклонениями, самая грубая прикидка.
Написала программку, которая на основе этих данных находит полный набор комплектов базовых отклонений. В программе делается полный перебор четырёх базовых отклонений p2, p4, p6, p8 (из 243 значений), остальные 5 отклонений вычисляются по формулам. При этом 4 отклонения (p3, p5, p7, p9) проверяются на принадлежность массиву разных парных отклонений, а отклонение p1 проверяется на принадлежность массиву значений для этого отклонения (30 значений).
Однако эта программа выдаёт очень много комплектов отклонений.
Тем не менее, удалось получить интересный результат. Я нашла порцию комплектов отклонений и проверила её по программе А. Программа нашла такие два пандиагональных квадрата:
22 1111 202 1633 94 2902
265 2218 1894 391 562 634
1642 121 319 985 1678 1219
355 1858 346 1966 913 526
2785 274 1282 535 922 166
895 382 1921 454 1795 517
1: S=5964 p2,4,6,8=36 -1188 72 -72
85 1507 1822 22 1894 634
94 346 706 2578 202 2038
895 2614 4 355 454 1642
1966 58 1255 1903 517 265
319 913 958 985 2515 274
2605 526 1219 121 382 1111
2: S=5964 p2,4,6,8=36 -909 -1008 1008
Интересен второй квадрат. В нём есть числа, которые не входят в исходный массив из 36 чисел, взятый для эксперимента. Как уже сказано, программа А не ориентируется на конкретный массив из 36 чисел, она работает со всеми смитами, для неё важны только базовые отклонения. Отклонения подошли, и квадрат построился!
*****
Какие же ввести дополнительные условия, чтобы комплектов отклонений получалось меньше? Пришла такая идея. Параллельно будем работать с цепочками. Цепочками (вслед за 12d3, который сделал замечательную программу для построения нетрадиционных обычных магических квадратов 6-го порядка) будем называть наборы из 6 чисел, сумма которых равна магической константе квадрата. Предложение такое: сначала искать все варианты первой главной диагонали квадрата, то есть вот эти элементы квадрата (рис. 9):
a11 |
|
|
|
|
|
|
a22 |
|
|
|
|
|
|
a33 |
|
|
|
|
|
|
a44 |
|
|
|
|
|
|
a55 |
|
|
|
|
|
|
a66 |
Рис. 9
Много ли будет кандидатов на эту диагональ? Напомню, что угловой элемент a11 мы считаем фиксированным, a11 = 22.
Нахожу по программе все упорядоченные цепочки, начинающиеся с числа 22 (упорядоченной называется цепочка, в которой числа следуют в порядке возрастания).
Эксперимент проводится для того же исходного массива из 36 чисел для магической константы 5964.
Таких цепочек имеется 648. Вот несколько первых цепочек:
22 94 166 562 2218 2902
22 94 166 922 1858 2902
22 94 166 985 1795 2902
22 94 166 1219 1678 2785
22 94 166 1795 1921 1966
22 94 202 526 2218 2902
22 94 202 895 1966 2785
22 94 202 1111 1633 2902
22 94 202 1219 1642 2785
22 94 202 1633 1795 2218
22 94 274 454 2218 2902
22 94 274 895 1894 2785
22 94 274 1111 1678 2785
22 94 274 1795 1858 1921
22 94 319 526 2218 2785
. . . . . . . . . . . . . . . . . . . . . . . .
Что делаем дальше? Понятно, что элементы первой главной диагонали дают нам значения отклонений p1, p5, p9.
Вот теперь и делаем проверку отклонений с помощью найденных цепочек. При этом в программе делаем все варианты цепочек, их будет 648*120=77760. Для каждого варианта цепочки вычисляем отклонения p1, p5, p9 и проверяем их на принадлежность соответствующим массивам отклонений, найденным выше.
Результат работы программы этого этапа: все реальные кандидаты на первую главную диагональ и количество разных значений для отклонений p1, p5, p9.
Вот результаты работы этой программы:
KOLICHESTVO RAZNYH OTKLONENIY P5: 139
1080 792 963 909 99 144 1728 1773 432 1116 756 1440 324 1008 180 999 873 1692 72 891 504 1188 684 1368 1071 801 0 207 1665 -36 27 549 1323 1233 639 252 1620 576 1260 612 1296 1548 1143 729 1872 -252 1269 603 1152 720 585 1287 -261 261 333 1539 1611 288 1584 360 1512 621 1251 1305 567 369 1503 1575 -99 108 1764 387 1485 -216 423 1431 441 1449 1314 558 747 1125 171 1701 513 1332 540 1359 783 981 1089 828 855 1017 1044 900 972 675 1197 1035 -9 -72 351 -189 1476 36 495 -180 -144 -27 1179 1062 702 9 1215 189 216 153 -153 -108 135 225 315 468 459 1341 864 936 243 81 -81 -45 450 342 -171 819 45 -360 927
KOLICHESTVO RAZNYH OTKLONENIY P9: 139
792 1080 909 963 1773 1728 144 99 1440 756 1116 432 1008 324 1692 873 999 180 891 72 1368 684 1188 504 801 1071 0 1665 207 27 -36 1323 549 639 1233 1620 252 1296 612 1260 576 1548 729 1143 1872 -252 603 1269 720 1152 1287 585 -261 1611 1539 333 261 1584 288 1512 360 1251 621 567 1305 1503 369 1575 -99 1764 108 1485 387 -216 1449 441 1431 423 558 1314 1125 747 1701 171 1359 540 1332 513 1089 981 783 1044 1017 855 828 972 900 1197 675 1035 -9 -72 351 -189 1476 36 495 -180 -144 -27 1179 702 1062 9 1215 189 216 153 -153 135 -108 225 468 315 459 1341 864 936 243 81 -81 -45 450 342 -171 819 45 -360 927
KOLICHESTVO RAZNYH OTKLONENIY P1: 9
-1872 -1764 -1692 -1512 -1620 -1584 -1611 -1575 -1701
Реальных кандидатов на первую главную диагональ только 10608 (это из 77760 вариантов, отсев очень большой). И отклонений отсеялось очень много. Тут происходит пересечение цепочек с отклонениями и взаимный отсев: отклонения отсеиваются цепочками, цепочки отсеиваются отклонениями. Интересный момент!
Покажу несколько реальных кандидатов на первую главную диагональ (вместе с цепочкой выводится и соответствующий комплект отклонений p1, p5, p9):
22 166 562 94 2902 2218
-1872 1080 792
22 166 2218 94 2902 562
-1872 1080 792
22 562 166 94 2218 2902
-1872 792 1080
22 562 2902 94 2218 166
-1872 792 1080
22 2218 166 94 562 2902
-1872 792 1080
22 2218 2902 94 562 166
-1872 792 1080
22 2902 562 94 166 2218
-1872 1080 792
22 2902 2218 94 166 562
-1872 1080 792
. . . . . . . . . . . . . . . . . . . . . . . . .
Здесь хорошо видно, что есть много одинаковых комплектов отклонений p1, p5, p9. Однако в массивы идут только разные отклонения.
Я сохранила массив всех реальных кандидатов на первую главную диагональ в файле 5964diagon.txt. Помещу его на сайт. Может быть, кому-нибудь пригодится, кто заинтересуется задачей.
Ну что же, теперь мы имеем массивы для отклонений p5 и p9 из 139 значений и массив для отклонения p1 из 9 значений. Можно снова попробовать найти полный набор комплектов отклонений. Я попробовала, но количество комплектов всё ещё очень большое.
Хотя тут надо экспериментировать с другими магическими константами. Для других констант могут получиться совсем другие результаты, количества значений для отклонений могут быть значительно меньше и вполне реально найти полный набор комплектов отклонений. Мне не хватает времени на все эти эксперименты. Для некоторых констант я всё это проделала. Возможно, приложу к статье и свой рабочий файл, где описаны все эксперименты.
Сейчас иду дальше в одновременной работе с цепочками и с отклонениями. Итак, запомним: мы нашли 10608 реальных кандидатов на первую диагональ и с каждым кандидатом имеем комплект трёх отклонений p1, p5, p9. Кроме того, мы имеем массивы значений для каждого из этих трёх отклонений. И имеем массив всех разных парных отклонений.
Следующий этап – поиск второй диагонали, это будет такая диагональ (рис. 10):
a11 |
a12 |
|
|
|
|
|
a22 |
a23 |
|
|
|
|
|
a33 |
a34 |
|
|
|
|
|
a44 |
a45 |
|
|
|
|
|
a55 |
a56 |
a61 |
|
|
|
|
a66 |
Рис. 10
Понятно, что элементы этой диагонали дают нам значения следующих трёх отклонений: p2, p6, p7.
Очевидно также, что вторую диагональ надо искать из оставшихся 30 элементов, выбросив из исходного массива 6 чисел, составляющих первую диагональ. Ну, и как уже догадываются читатели, поиск второй диагонали надо связать с уже найденными значениями отклонений и проверять все новые отклонения на принадлежность массиву разных парных отклонений.
Далее совершенно очевидно, что три новых отклонения p2, p6, p7 вместе с найденными ранее тремя отклонениями p1, p5, p9 полностью определяют весь комплект из 9 отклонений, а значит и базовый комплект.
Таким образом, в результате работы этой программы мы получаем все варианты с двумя диагоналями и соответствующие им комплекты отклонений. Всё! Это уже завершающий этап. Больше нам ничего не нужно.
Примечание: здесь важен такой момент (по мотивам дискуссии с А. Черновым). Найдя полный набор комплектов отклонений, я предлагаю обрабатывать этот комплект по программе А, и сама делаю это. Хотя, конечно, совершенно очевидно, что можно продолжить далее мою программу с этого момента и проверить достраивание квадрата по полученным двум диагоналям и полному комплекту отклонений. Это будет даже гораздо эффективнее, чем пользоваться программой А, так как эта программа, получив комплект отклонений, начинает проверку с нуля, а в моей программе проверка будет начинаться с двух готовых диагоналей.
И в рабочем файле я это проделала (проверочно) для одного конкретного примера. То есть программа и для этого завершающего этапа у меня написана. Пока же мне удобнее пользоваться для обработки полных наборов комплектов отклонений программой А. Тем более что и получаю я эти наборы не полностью, а частично.
Написала программку и для этого этапа. Мой компьютер тихоход, он и здесь не очень шустро выполняет программу. Я не стала выполнять программу до конца. Посмотрела на начало массива комплектов базовых отклонений:
36 -108 1332 -1332
36 -108 1332 -1332
36 -108 1323 -1323
36 -108 1323 -1323
36 -108 873 -873
36 -108 873 -873
36 -108 747 -747
36 -108 747 -747
36 -108 639 -639
36 -108 639 -639
36 -108 225 -225
36 -108 225 -225
36 -108 216 -216
36 -108 216 -216
36 -108 -36 36
36 -108 -36 36
36 -108 -360 360
36 -108 -360 360
36 -108 -927 927
36 -108 -927 927
. . . . . . . . . . . . . . . .
Тут очень много одинаковых комплектов. Надо вставлять в программу проверку на одинаковость и отсеивать одинаковые комплекты базовых отклонений.
Как я уже сказала, надо собрать все этапы в единую программу. Мне это сложно сделать. А помочь абсолютно некому. Приходится ограничиваться проведением экспериментов по отдельным этапам.
В рабочих файлах описано много разных экспериментов и идей. Здесь изложены самые ключевые. Например, попробовала выбрасывать из найденного массива разных парных отклонений те, которые в единственном числе. Затем пошла дальше: выбрасывала и те отклонения, которых 2 или 3. Таким образом, оставляла только такие отклонения, для которых имеется не менее 4 пар. Это, собственно, старый путь. Он не даёт полной проверки, а может только найти квадрат, если таковой существует. Тем не менее, этот путь тоже можно пробовать.
Приведу один из экспериментов для магической константы 4128, когда выбрасывались отклонения, которые в единственном числе. Это значит, что для таких отклонений имеется только одна пара чисел. Шансы такой пары принять участие в составлении квадрата ничтожны малы. Вот что получилось в этом эксперименте.
Исходный массив из 36 чисел:
4 22 58 85 94 121 166 202 265 274 319 346 355 382 391 454 517 526 535 562 634 706 778 895 913 922 958 985 1111 1165 1219 1255 1282 1507 2155 2605
Разных парных отклонений получилось 508. Выбрала разные парные отклонения и выбросила те, которые в единственном числе, получился такой массив отклонений:
-1233 1233 -1053 1053 -900 900 -864 864 -837 837 -828 828 -801 801 -765 765 -693 693 -684 684 -657 657 -648 648 -585 585 -567 567 -513 513 -504 504 -495 495 -477 477 -432 432 -423 423 -405 405 -396 396 -369 369 -360 360 -333 333 -324 324 -315 315 -297 297 -288 288 -261 261 -252 252 -243 243 -225 225 -216 216 -189 189 -180 180 -153 153 -144 144 -135 135 -126 126 -117 117 -108 108 -99 99 -81 81 -72 72 -63 63 -45 45 -36 36 -9 9 0
В этом массиве осталось всего 99 значений.
Для отклонения p1 получились такие возможные значения (из 35 всех возможных выбрала те, которые принадлежат массиву разных парных отклонений):
-1053 -837 -477 -261 -153 -117 135 1233
Осталось всего 8 значений.
Уже и на этом этапе можно остановиться и попробовать найти полный набор комплектов отклонений. Но я решила ещё поработать с цепочками (кандидатами на первую диагональ). Нахожу по программе все упорядоченные цепочки, начинающиеся с числа 4. Программа выдаёт 716 цепочек. Вот несколько первых цепочек:
4 22 58 274 1165 2605
4 22 58 382 1507 2155
4 22 58 454 985 2605
4 22 58 517 922 2605
4 22 58 526 913 2605
4 22 58 634 1255 2155
4 22 58 778 1111 2155
4 22 58 1255 1282 1507
4 22 85 355 1507 2155
4 22 85 454 958 2605
4 22 85 517 895 2605
4 22 85 634 778 2605
4 22 94 121 1282 2605
4 22 94 346 1507 2155
4 22 94 634 1219 2155
4 22 94 895 958 2155
. . . . . . . . . . . . . . . . . . . . .
Теперь пересекаем цепочки с найденными отклонениями.
Результат выполнения программы:
KOLICHESTVO KANDIDATOV NA PERVUYU DIAGONAL: 10776
KOLICHESTVO RAZNYH OTKLONENIY P5: 81
-900 -369 -864 -333 -837 -432 -801 -396 -828 -405 801 -684 -72 153 -36 189 -99 -63 -1233 0 -648 -324 225 -135 252 900 108 333 -243 -585 396 1053 261 513 297 36 1233 585 765 360 657 693 684 324 -1053 -180 837 216 864 -360 72 477 288 -423 648 45 -9 -126 126 243 117 180 828 -108 -504 369 9 -144 81 405 -315 -288 -252 432 144 -216 -261 504 -567 -495 135
KOLICHESTVO RAZNYH OTKLONENIY P9: 81
-333 -864 -369 -900 -396 -801 -432 -837 -405 -828 -684 801 189 -36 153 -72 -63 -99 0 -1233 -648 -324 225 -135 900 252 333 108 -243 -585 396 1053 261 513 297 1233 36 585 765 360 657 693 684 324 -180 -1053 864 216 837 -360 72 477 288 -423 648 45 -126 -9 126 243 180 117 828 -108 -504 369 9 -144 81 405 -315 -288 -252 432 144 -216 -261 504 -567 -495 135
KOLICHESTVO RAZNYH OTKLONENIY P1: 8
1233 -117 135 -153 -477 -1053 -261 -837
Вот несколько первых диагоналей, выданных программой:
4 22 58 2605 454 985
1233 -900 -333
4 22 985 2605 454 58
1233 -900 -333
4 22 58 2605 985 454
1233 -369 -864
4 22 454 2605 985 58
1233 -369 -864
4 58 22 2605 454 985
1233 -864 -369
4 58 985 2605 454 22
1233 -864 -369
4 58 22 2605 985 454
1233 -333 -900
4 58 454 2605 985 22
1233 -333 -900
4 454 58 2605 22 985
1233 -900 -333
. . . . . . . . . . . . . . . . . . . . .
Видно, что много одинаковых комплектов отклонений p1, p5, p9. По-моему, их можно отсеивать, они, наверное, дадут эквивалентные квадраты. Хотя я не уверена в этом. В этих дьявольских квадратах сам чёрт ногу сломит!
Смотрите, например, на рис. 11 – 12.
4 |
|
|
|
|
|
|
22 |
|
|
|
|
|
|
58 |
|
|
|
|
|
|
2605 |
|
|
|
|
|
|
454 |
|
|
|
|
|
|
985 |
Рис. 11
Вместе с таким вариантом диагонали присутствует и такой:
4 |
|
|
|
|
|
|
22 |
|
|
|
|
|
|
985 |
|
|
|
|
|
|
2605 |
|
|
|
|
|
|
454 |
|
|
|
|
|
|
58 |
Рис. 12
Будут ли квадраты с такими главными диагоналями эквивалентными или совсем не обязательно?
Уже на этом этапе удалось получить полный набор комплектов отклонений, он содержит 241220 комплектов. Однако даже такое количество комплектов для программы А оказалось слишком большим. Два часа работала программа, но все комплекты не проверила. Ну, может быть, часов за 12 и справится.
Тогда можно продолжить и сделать поиск второй диагонали. Я это не проделала.
Прилагаю архив, в котором файл 5964diagon.txt, содержащий все возможные первые главные диагонали для магической константы 5964 (из выбранного массива, состоящего из 36 чисел), а также два рабочих файла – «Работа с отклонениями». Эти файлы я писала для себя, это черновики, я их не редактировала. Так что в них, может быть, не всё понятно. Готова пояснить непонятные моменты. Но для тех, кто захочет вникнуть в задачу, эти рабочие файлы расскажут много.
Ссылка на архив: http://www.natalimak.narod.ru/mk/5964diagon.rar
*****
Продолжаю проводить эксперименты по отдельным этапам для различных магических констант. Сделать цельную программу пока не удалось. Жду-пожду, может, кто поможет. Похоже, напрасно жду.
Да, совсем забыла рассказать о формировании массивов чисел для заданной магической константы. Все приведённые выше примеры рассматривались для случая, когда массив состоит из 36 чисел. Однако, как уже было отмечено, для большинства магических констант массив содержит больше 36 чисел.
Написала программу формирования массива, чтобы она давала точно те числа, которые могут участвовать в составлении квадрата с данной магической константой. Так, для магической константы 4020 получился массив, состоящий из 49 чисел:
4 22 58 85 94 121 166 202 265 274 319 346 355 382 391 454 517 526 535 562 634 706 778 895 913 922 958 985 1111 1165 1219 1255 1282 1507 1633 1642 1795 1822 1858 1921 1966 2038 2155 2173 2218 2227 2326 2434 2461
Пока писала эту программу, возникла такая идея: зачем рассматривать цепочки с повторяющимися числами? Надо брать только те цепочки, которые составлены из разных чисел. Насколько полной будет такая проверка, не могу сообразить. Но зато как уменьшается количество вариантов на первую главную диагональ!
Покажу результаты только что проделанного эксперимента. Для показанного выше массива, состоящего из 49 чисел, сформированы все упорядоченные цепочки из разных чисел. Таких цепочек получилось всего 58. Вот они:
4 22 58 85 1633 2218
4 94 121 202 1165 2434
4 166 265 274 985 2326
4 319 346 355 535 2461
4 382 391 454 562 2227
4 517 526 778 913 1282
22 58 85 94 1795 1966
22 121 166 202 1282 2227
22 265 274 319 706 2434
22 346 355 382 454 2461
22 391 517 526 922 1642
22 535 562 778 958 1165
58 85 94 121 1507 2155
58 166 202 265 895 2434
58 274 319 346 562 2461
58 355 382 391 913 1921
58 454 517 535 634 1822
85 94 121 166 1633 1921
85 202 265 319 922 2227
85 274 346 355 526 2434
85 382 391 454 535 2173
85 517 562 706 895 1255
94 121 166 202 1111 2326
94 265 274 319 634 2434
94 346 355 382 922 1921
94 391 454 517 526 2038
94 535 562 706 958 1165
121 166 202 265 1111 2155
121 274 319 346 526 2434
121 355 382 391 913 1858
121 454 517 778 895 1255
166 202 265 274 895 2218
166 319 346 355 913 1921
166 382 391 454 985 1642
166 517 526 535 1111 1165
166 562 634 778 922 958
202 265 274 319 526 2434
202 346 355 382 517 2218
202 391 454 562 778 1633
202 535 634 706 958 985
265 274 319 346 355 2461
265 382 391 454 562 1966
265 517 526 535 895 1282
274 319 346 355 1219 1507
274 382 391 517 535 1921
274 454 526 562 922 1282
319 346 355 382 391 2227
319 454 517 526 562 1642
346 355 382 391 913 1633
346 454 517 526 535 1642
355 382 391 454 517 1921
355 526 535 706 913 985
382 391 454 517 634 1642
382 526 535 706 913 958
391 454 517 526 913 1219
454 517 526 535 706 1282
517 526 535 562 895 985
526 535 562 634 778 985
Теперь нахожу массив разных парных отклонений для заданного массива чисел. Этот массив содержит 251 отклонение:
-1278 -1260 -1251 -1242 -1233 -1224 -1215 -1197 -1188 -1170 -1161 -1152 -1134 -1125 -1116 -1089 -1080 -1071 -1062 -1053 -1044 -1017 -1008 -999 -990 -981 -972 -963 -954 -945 -936 -927 -909 -900 -891 -882 -873 -864 -855 -837 -828 -819 -810 -801 -792 -783 -774 -756 -747 -738 -729 -720 -711 -702 -693 -684 -675 -666 -657 -648 -639 -630 -621 -612 -603 -585 -576 -567 -558 -549 -540 -531 -513 -504 -495 -486 -477 -468 -459 -450 -441 -432 -423 -414 -405 -396 -387 -378 -369 -360 -351 -342 -333 -324 -315 -306 -297 -288 -279 -270 -261 -252 -234 -225 -216 -207 -189 -180 -171 -162 -153 -144 -135 -126 -117 -108 -99 -90 -81 -72 -63 -45 -36 -27 -9 0 9 27 36 45 63 72 81 90 99 108 117 126 135 144 153 162 171 180 189 207 216 225 234 252 261 270 279 288 297 306 315 324 333 342 351 360 369 378 387 396 405 414 423 432 441 450 459 468 477 486 495 504 513 531 540 549 558 567 576 585 603 612 621 630 639 648 657 666 675 684 693 702 711 720 729 738 747 756 774 783 792 801 810 819 828 837 855 864 873 882 891 900 909 927 936 945 954 963 972 981 990 999 1008 1017 1044 1053 1062 1071 1080 1089 1116 1125 1134 1152 1161 1170 1188 1197 1215 1224 1233 1242 1251 1260 1278
Далее пересекаю цепочки и отклонения. В результате работы этой программы получаются все реальные кандидаты на первую главную диагональ и соответствующие им комплекты отклонений (p1, p5, p9).
KOLICHESTVO KANDIDATOV NA PERVUYU DIAGONAL: 4704
KOLICHESTVO RAZNYH OTKLONENIY P5: 162
315 900 378 963 351 936 -1260 -1233 -1197 1215 27 1188 -81 -1044 -1017 -90 1251 1260 -189 1152 -909 -900 -801 -675 -666 -486 -639 -459 -450 1278 -324 -396 -504 -567 -495 -387 -36 99 468 720 855 -45 90 459 -297 540 711 549 513 684 -1188 -1161 108 1053 144 1089 63 1008 -1053 -972 -612 -540 -603 -531 819 828 1224 -423 -27 693 -432 0 180 387 396 603 783 153 360 261 909 288 252 -1134 -1125 -180 -873 -747 -720 972 -72 -288 999 -171 1017 1116 -351 -252 -369 414 702 747 675 -1080 -99 -216 -153 -819 -756 -414 117 477 621 810 -117 72 432 -261 -63 -108 927 -360 324 531 36 1080 981 873 333 9 369 -864 756 -279 297 306 342 216 -144 -468 1233 -441 -477 1071 279 -711 81 837 234 486 225 504 864 1242 648 558 171 -315 405 792 207 423
KOLICHESTVO RAZNYH OTKLONENIY P9: 162
963 378 900 315 936 351 -1197 -1233 -1260 27 1215 1188 -81 -1017 -1044 1260 1251 -90 1152 -189 -801 -900 -909 -450 -459 -639 -486 -666 -675 -324 1278 -396 -504 -387 -495 -567 855 720 468 99 -36 459 90 -45 -297 549 711 540 684 513 -1161 -1188 1089 144 1053 108 1008 63 -972 -1053 -531 -603 -540 -612 1224 828 819 693 -27 -423 -432 783 603 396 387 180 0 360 153 288 909 261 252 -1125 -1134 -180 -873 -720 -747 972 -72 1116 1017 -171 999 -288 -252 -351 -369 747 702 414 675 -1080 -99 -153 -216 -756 -819 -414 810 621 477 117 432 72 -117 -261 -63 -108 927 -360 531 324 1080 36 981 873 333 369 9 -864 756 306 297 -279 342 216 -144 -441 1233 -468 -477 1071 279 -711 837 81 234 486 225 864 504 1242 648 558 171 -315 792 405 207 423
KOLICHESTVO RAZNYH OTKLONENIY P1: 44
-1278 -1251 297 882 -1242 -1215 -1134 -171 -1170 -1071 -1062 -351 990 1125 -954 -882 -774 891 -819 -810 -558 -423 459 630 -945 -414 306 -801 -378 171 819 -441 -981 585 -702 486 -1017 837 -630 -81 -225 -990 702 -117
Несколько кандидатов на первую главную диагональ:
4 22 85 58 1633 2218
-1278 315 963
4 22 2218 58 1633 85
-1278 315 963
4 22 85 58 2218 1633
-1278 900 378
4 22 1633 58 2218 85
-1278 900 378
4 85 22 58 1633 2218
-1278 378 900
4 85 2218 58 1633 22
-1278 378 900
4 85 22 58 2218 1633
-1278 963 315
4 85 1633 58 2218 22
-1278 963 315
4 1633 85 58 22 2218
-1278 315 963
4 1633 2218 58 22 85
-1278 315 963
. . . . . . . . . . . . . . . . . . . .
И опять здесь много одинаковых комплектов отклонений (p1, p5, p9). Об этом уже сказано выше. Но даже если рассматривать все выданные диагонали, то их не так много, всего 4704. Теперь вполне реально выполнить следующий этап – поиск второй диагонали. Этот этап даст нам полный набор комплектов базовых отклонений. Пока не проделала этот этап. Но интересно очень, что он даст.
Остаётся непонятным вопрос: что дают цепочки с повторяющимися числами. Можно ли их отбросить, не нарушая полноты проверки? Если ответ положительный, тогда решение задачи намного облегчается.
Однако мне кажется, что полнота проверки в таком варианте не будет соблюдена. Тогда будем считать этот вариант упрощённым вариантом алгоритма.
*****
Интересные выявились моменты в процессе обсуждения с А. Черновым результатов формирования массивов чисел для заданной магической константы.
Решила сверить полученный мной массив для магической константы 4020 с массивом, полученным Черновым. Оказалось, что наши массивы не совпадают, хотя количество чисел в них одинаково. Начала думать, почему так получилось. Всё очень просто.
Берём исходный массив из 54 смитов:
4 22 58 85 94 121 166 202 265 274 319 346 355 382 391 454 517 526 535 562 634 706 778 895 913 922 958 985 1111 1165 1219 1255 1282 1507 1633 1642 1678 1795 1822 1858 1894 1903 1921 1966 2038 2155 2173 2182 2218 2227 2326 2362 2434 2461
Исходный массив у нас одинаковый.
Теперь, чтобы сформировать новый массив всех чисел, которые могут принять участие в составлении квадрата с данной магической константой S, надо проверить все числа на следующие два условия (они должны выполняться одновременно):
а) число должно входить хотя бы в одну цепочку из 6 чисел с суммой чисел равной магической константе;
б) число должно входить хотя бы в один набор из 36 чисел, сумма которых равна 6*S.
Чернов при формировании массива проверял только условие б) и проигнорировал условие а). Я же проверяла только условие а). Условие б) не проигнорировала, а просто его сложно реализовать – очень долго выполняется проверка всех наборов по 36 чисел.
В результате у нас получились разные массивы.
Кроме того, я допустила в своей программе логическую ошибку: проверяла только цепочки, начинающиеся с первого, второго, третьего и т. д. чисел массива и при этом состоящие из разных чисел (все эти цепочки приведены выше). В результате я потеряла несколько чисел, которые тоже входят в цепочки.
С учётом всего сказанного исправила полученный мной массив. Он получился такой:
4 22 58 85 94 121 166 202 265 274 319 346 355 382 391 454 517 526 535 562 634 706 778 895 913 922 958 985 1111 1165 1219 1255 1282 1507 1633 1642 1678 1795 1822 1858 1894 1903 1921 1966 2038 2155 2182 2218 2434
Примечание: тут интересно получилось. В полученном мной ранее массиве было 4 числа, которые не удовлетворяют условию б) (так как я это условие не проверяла). Выбросила эти числа. В то же время я потеряла 4 числа, которые удовлетворяют условию а). Добавила эти числа. Поэтому по количеству чисел у нас массивы совпадали сразу.
Надо попробовать формирование массива для следующей магической константы – 4128. Чернов прислал мне полученный им массив:
4 22 58 85 94 121 166 202 265 274 319 346 355 382 391 454 517 526 535 562 634 706 778 895 913 922 958 985 1111 1165 1219 1255 1282 1507 1633 1642 1678 1795 1822 1858 1894 1903 1921 1966 2038 2155 2173 2182 2218 2227 2326 2362 2434 2461 2515 2578 2605 2614 2722 2839 2902 2965
Но надо проверить этот массив цепочками. Вполне возможно, что в массив попали числа, которые не входят ни в одну цепочку.
Продолжаю проводить отдельные эксперименты. Нахожу небольшие порции комплектов отклонений и проверяю их по программе A. Сейчас проверяю магическую константу 5856.
*****
Вернулась к предыдущему алгоритму и модифицировала программу. Сделала проверку всех отклонений, предварительно сформировав массивы возможных отклонений. Это дало очень большое убыстрение выполнения программы. Напомню: массив из 36 чисел для магической константы 3912 я проверяла по этой программе около 35 часов. Теперь проверка такого массива занимает чуть более часа. Приведу пример теста модифицированной программы для магической константы 5964.
Это исходный массив из 36 чисел:
4 22 58 85 94 121 202 265 274 319 346 355 382 454 517 526 634 706 895 913 958 985 1111 1219 1255 1507 1642 1822 1894 1903 1966 2038 2515 2578 2605 2614
Массив разных парных отклонений:
-1881 -1872 -1845 -1836 -1809 -1782 -1728 -1701 -1692 -1638 -1620 -1611 -1602 -1584 -1575 -1557 -1548 -1539 -1530 -1521 -1512 -1485 -1476 -1440 -1413 -1341 -1332 -1323 -1296 -1269 -1260 -1251 -1233 -1224 -1197 -1161 -1152 -1143 -1125 -1116 -1107 -1089 -1080 -1071 -1053 -1035 -1026 -1017 -1008 -999 -981 -972 -963 -945 -936 -909 -900 -891 -882 -873 -855 -828 -819 -810 -801 -792 -774 -765 -756 -747 -738 -729 -720 -711 -684 -675 -648 -639 -621 -612 -576 -567 -549 -531 -504 -495 -486 -477 -468 -441 -423 -414 -396 -378 -369 -360 -351 -342 -324 -315 -297 -288 -261 -252 -243 -225 -216 -180 -171 -162 -144 -135 -126 -117 -108 -99 -81 -72 -63 -45 -36 -27 -18 -9 0 9 18 27 36 45 63 72 81 99 108 117 126 135 144 162 171 180 216 225 243 252 261 288 297 315 324 342 351 360 369 378 396 414 423 441 468 477 486 495 504 531 549 567 576 612 621 639 648 675 684 711 720 729 738 747 756 765 774 792 801 810 819 828 855 873 882 891 900 909 936 945 963 972 981 999 1008 1017 1026 1035 1053 1071 1080 1089 1107 1116 1125 1143 1152 1161 1197 1224 1233 1251 1260 1269 1296 1323 1332 1341 1413 1440 1476 1485 1512 1521 1530 1539 1548 1557 1575 1584 1602 1611 1620 1638 1692 1701 1728 1782 1809 1836 1845 1872 1881
KOLICHESTVO RAZNYH PARNYH OTKLONRNIY = 249
Выбираю отклонения для p9:
KOLICHESTVO ZNACHENIY P9: 18
-1782 -1638 -1602 -1530 -1089 -1071 -1026 -999 -873 -765 -729 -477 -342 -162 -81 -18 531 621
Нахожу все цепочки с первого числа массива. Цепочек получилось 515.
Проверяю отклонения цепочками:
KOLICHESTVO KANDIDATOV NA PERVUYU DIAGONAL: 22248 (эта информация в данном алгоритме не нужна, она для нового алгоритма)
KOLICHESTVO RAZNYH OTKLONENIY P5: 239
-1881 -1332 648 -1269 711 1260 -144 549 -72 621 -1872 1341 -1845 612 -1233 1224 639 1143 -63 1845 117 828 -747 -567 792 -711 -531 0 1233 1782 180 729 882 891 -1701 -1512 1080 -468 72 324 801 -1692 -855 1161 -324 -1440 -1143 909 225 945 936 1026 1701 261 -1620 1089 1638 873 981 -1611 9 1692 963 1530 999 -1584 1602 360 -981 -621 1053 216 1071 -1053 -549 423 351 -486 441 1152 -1071 1521 819 -477 -135 1809 1413 -1260 1323 -297 -171 1332 477 414 -1008 1485 1548 1017 162 378 1881 1584 81 1197 1620 765 342 1476 486 -1296 675 108 -675 -639 144 1107 -1728 -1413 -27 36 855 -1476 684 315 -504 -945 -729 900 -819 -36 -495 369 -288 396 -1017 -108 -423 -1548 288 -1035 504 1557 1575 -972 1116 -243 45 1296 -1224 756 1512 126 1035 1440 -1782 738 1251 135 -792 -756 171 -9 -648 -612 27 -261 -396 -360 -225 -1638 -1521 63 -684 -1557 1539 1008 1611 -81 -1197 576 -369 18 810 -117 1269 774 1125 720 -1341 252 -252 -936 -765 -1539 -1251 -378 -126 -909 -999 468 1728 1872 747 -1602 99 -882 972 -720 -45 -576 -1161 243 -873 -810 -801 -738 -1323 297 -891 -774 -828 -99 -351 -315 -1152 -1080 -216 -162 -414 -1089 1836 -963 -900 495 -180 567 -1125 -1116 -1107
KOLICHESTVO RAZNYH OTKLONENIY P1: 239
1260 711 -1269 648 -1332 -1881 621 -72 549 -144 1341 -1872 1224 -1233 612 -1845 1143 639 1845 -63 828 117 -567 -747 792 -531 -711 1782 1233 0 729 180 891 882 1080 -1512 -1701 -468 801 324 72 1161 -855 -1692 -324 909 -1143 -1440 945 225 936 1701 1026 261 -1620 1638 1089 873 981 -1611 1692 9 1530 963 999 -1584 1602 360 -621 -981 1053 216 1071 -1053 -549 423 351 -486 1152 441 1521 -1071 819 -477 1809 -135 1413 -1260 1323 -297 1332 -171 477 414 1548 1485 -1008 1017 162 1881 378 1584 81 1620 1197 765 342 1476 486 675 -1296 108 144 -639 -675 1107 -1413 -1728 -27 36 855 -1476 315 684 -504 -729 -945 900 -819 -36 -495 369 -288 396 -1017 -108 -423 288 -1548 504 -1035 1557 1575 -972 1116 -243 45 1296 -1224 756 1512 126 1035 1440 1251 738 -1782 135 171 -756 -792 -9 27 -612 -648 -261 -396 -225 -360 -1638 -1521 63 -684 -1557 1539 1008 1611 -81 576 -1197 -369 18 810 -117 1269 774 1125 -1341 720 252 -252 -765 -936 -1251 -1539 -378 -126 -909 -999 468 1728 1872 747 -1602 99 -882 972 -720 -45 -576 -1161 243 -810 -873 -738 -801 -1323 297 -774 -891 -828 -99 -351 -315 -1080 -1152 -162 -216 -414 -1089 1836 -963 -900 495 -180 567 -1125 -1116 -1107
KOLICHESTVO RAZNYH OTKLONENIY P9: 18
621 -477 531 -1782 -765 -81 -729 -18 -1530 -873 -162 -1638 -1602 -1071 -999 -1089 -342 -1026
Интересно отметить, что массивы для отклонений p1 и p5 получаются одинаковые.
Выполнила программу полностью для этого массива.
Вот какие построились квадраты:
1903 517 265 1966 58 1255
985 2515 274 319 913 958
121 382 1111 2605 526 1219
22 1894 634 85 1507 1822
2578 202 2038 94 346 706
355 454 1642 895 2614 4
2578 202 2038 94 346 706
22 1894 634 85 1507 1822
121 382 1111 2605 526 1219
985 2515 274 319 913 958
1903 517 265 1966 58 1255
355 454 1642 895 2614 4
58 1966 265 517 1903 1255
913 319 274 2515 985 958
526 2605 1111 382 121 1219
1507 85 634 1894 22 1822
346 94 2038 202 2578 706
2614 895 1642 454 355 4
346 94 2038 202 2578 706
1507 85 634 1894 22 1822
526 2605 1111 382 121 1219
913 319 274 2515 985 958
58 1966 265 517 1903 1255
2614 895 1642 454 355 4
58 913 526 1507 346 2614
1966 319 2605 85 94 895
265 274 1111 634 2038 1642
517 2515 382 1894 202 454
1903 985 121 22 2578 355
1255 958 1219 1822 706 4
1903 985 121 22 2578 355
517 2515 382 1894 202 454
265 274 1111 634 2038 1642
1966 319 2605 85 94 895
58 913 526 1507 346 2614
1255 958 1219 1822 706 4
346 1507 526 913 58 2614
94 85 2605 319 1966 895
2038 634 1111 274 265 1642
202 1894 382 2515 517 454
2578 22 121 985 1903 355
706 1822 1219 958 1255 4
2578 22 121 985 1903 355
202 1894 382 2515 517 454
2038 634 1111 274 265 1642
94 85 2605 319 1966 895
346 1507 526 913 58 2614
706 1822 1219 958 1255 4
И ещё одно улучшение для этого алгоритма предложил А. Чернов. Оно состоит в следующем. В алгоритме фиксируется один элемент, этот элемент помещается в угловую ячейку квадрата (правую нижнюю). Фиксировать можно любой элемент. Я всегда фиксировала минимальный элемент массива. А. Чернов предложил фиксировать максимальное число массива. В этом случае программа выполняется намного быстрее. Дело в том, что с максимальным числом меньше получается цепочек. Однако не всегда. В одном эксперименте (для магической константы 4020) у меня, в самом деле, программа выполнилась намного быстрее при фиксировании максимального элемента. А в другом эксперименте (для магической константы 5964) никакого убыстрения не получилось. Тут, наверное, надо делать так: фиксировать тот элемент, который даёт меньше всего цепочек. Но для этого надо проверить, сколько цепочек даст каждый из 36 элементов массива. Ну, можно начать проверку с больших чисел, проверить штук 10 и выбрать тот элемент, который дал меньше всего цепочек.
Теперь перехожу к вопросу формирования массивов из 36 чисел. Выше было рассказано о том, как находить полный набор чисел, которые могут принять участие в составлении квадрата с заданной магической константой. Тут надо сделать поправку. Первое условие для чисел массива сформулировано так:
а) число должно входить хотя бы в одну цепочку из 6 чисел с суммой чисел равной магической константе.
Легко увидеть, что этого недостаточно. Посмотрим на пандиагональный квадрат (рис. 10):
1903 |
517 |
265 |
1966 |
58 |
1255 |
985 |
2515 |
274 |
319 |
913 |
958 |
121 |
382 |
1111 |
2605 |
526 |
1219 |
22 |
1894 |
634 |
85 |
1507 |
1822 |
2578 |
202 |
2038 |
94 |
346 |
706 |
355 |
454 |
1642 |
895 |
2614 |
4 |
Рис. 10
Очевидно, что любой элемент квадрата принадлежит одновременно трём цепочкам (строка – столбец – диагональ), в которых все элементы (кроме данного) различны. Например, элемент 517 принадлежит таким трём цепочкам:
1903 517 265 1966 58 1255
517 2515 382 1894 202 454
517 985 1219 1507 94 1642
Написала программу проверки этого условия. В массиве для магической константы 4020 все числа этому условия удовлетворяют.
А вот в массиве для магической константы 4128 три числа не удовлетворили этому условию: 2839, 2902, 2965; выбросила их. В результате массив для этой магической константы получился такой (59 чисел):
4 22 58 85 94 121 166 202 265 274 319 346 355 382 391 454 517 526 535 562 634 706 778 895 913 922 958 985 1111 1165 1219 1255 1282 1507 1633 1642 1678 1795 1822 1858 1894 1903 1921 1966 2038 2155 2173 2182 2218 2227 2326 2362 2434 2461 2515 2578 2605 2614 2722
*****
Поскольку у меня нет программы, проверяющей сразу весь массив чисел, пришлось решать задачу формирования массивов по 36 чисел. Эта задача тоже оказалась интересной. К тому же, она навела на интересный алгоритм.
Итак, возьмём сформированный полный массив чисел для магической константы 4020, он состоит из 49 чисел:
4 22 58 85 94 121 166 202 265 274 319 346 355 382 391 454 517 526 535 562 634 706 778 895 913 922 958 985 1111 1165 1219 1255 1282 1507 1633 1642 1678 1795 1822 1858 1894 1903 1921 1966 2038 2155 2182 2218 2434
Как же из чисел этого массива формировать массивы по 36 чисел? Тут должны выполняться такие условия:
А. все числа массива различны;
В. сумма всех чисел массива равна 6*S (S – магическая константа квадрата);
С. все числа массива можно разбить (хотя бы одним способом) на 9 групп по 4 числа так, что сумма чисел в каждой группе равна 2*S/3;
D. все числа массива можно разбить (хотя бы одним способом) на 4 группы по 9 чисел так, что сумма чисел в каждой группе равна 3*S/2.
Очевидно, что условие В следует из условия С и из условия D, но для порядка приведено. Все 4 условия должны выполняться одновременно.
Вот, например, массив из 36 чисел, сформированный Черновым:
4 22 58 85 94 121 166 202 265 274 319 346 355 382 391 454 517 526 535 562 634 706 778 895 913 922 958 985 1111 1165 1219 1255 1282 1507 1678 2434
Одно из разбиений этого массива на 9 групп по 4 числа (дальше буду говорить: разбиение на четвёрки):
517 526 1255 382
535 985 706 454
562 1678 94 346
634 778 913 355
895 1507 4 274
922 202 1165 391
958 319 1282 121
22 166 2434 58
1111 1219 85 265
Одно из разбиений этого массива на 4 группы по 9 чисел (дальше буду говорить: разбиение на девятки):
382 391 454 517 526 535 562 985 1678
634 706 778 895 913 922 958 22 202
1111 1165 1219 1255 94 166 319 346 355
1282 1507 2434 4 58 85 121 265 274
Много ли будет таких массивов по 36 чисел? Как их все быстро найти? Можно предложить такой путь: искать все наборы по 4 девятки из различных чисел (условие D), каждый такой набор собственно является массивом из 36 чисел; затем проверять каждый набор девяток на выполнение условия С. Условие В, как уже сказано, выполнится автоматически. Мне удалось с ходу найти такие 8 наборов девяток:
№ 1
265 274 319 346 355 382 391 1795 1903
454 517 526 535 562 634 706 985 1111
778 895 913 922 958 1219 22 121 202
1165 1255 1282 1921 4 58 85 94 166
№ 2
346 355 382 391 454 517 526 1165 1894
535 562 634 706 778 895 913 922 85
958 985 1111 1219 1255 4 22 202 274
1282 1507 2218 58 94 121 166 265 319
№ 3
355 382 391 454 517 526 562 922 1921
535 634 706 778 895 913 958 265 346
985 1111 1165 1219 1255 22 58 94 121
1282 1795 1903 4 85 166 202 274 319
№ 4
382 391 454 517 526 535 562 985 1678
634 706 778 895 913 922 958 22 202
1111 1165 1219 1255 94 166 319 346 355
1282 1507 2434 4 58 85 121 265 274
№ 5
391 454 517 526 535 562 634 778 1633
706 895 913 922 958 985 4 265 382
1111 1165 1219 1255 58 202 319 346 355
1507 1795 1966 22 85 94 121 166 274
№ 6
454 517 526 535 562 634 706 985 1111
778 895 913 922 958 1165 4 121 274
1219 1255 1282 1507 22 58 94 202 391
1678 2434 85 166 265 319 346 355 382
№ 7
517 526 535 562 634 706 778 1507 265
895 913 922 958 985 1111 22 58 166
1165 1219 1255 1282 4 85 274 355 391
1678 2434 94 121 202 319 346 382 454
№ 8
535 562 634 706 778 895 913 922 85
958 985 1111 1165 1219 4 121 202 265
1255 1282 1507 22 274 319 391 454 526
1678 2434 58 94 166 346 355 382 517
Я написала пока только простенькую программку для формирования наборов девяток. Понятно, что таких наборов будет очень много. Но как много? Для ответа на этот вопрос надо делать нормальную программу.
Кстати, отмечу, что массив, сформированный Черновым, я проверила по модифицированной программе. Программа выполнялась всего 73 минуты (зафиксировала элемент 2434). Квадрат не найден.
Вот, проверен только один массив из 36 чисел. А сколько их будет всего?
Теперь расскажу, какая идея пришла во время работы с девятками.
Пусть мы имеем некоторое разбиение массива из 36 чисел на девятки:
a1, a2, a3, a4, a5, a6, a7, a8, a9
b1, b2, b3, b4, b5, b6, b7, b8, b9
c1, c2, c3, c4, c5, c6, c7, c8, b9
e1, e2, e3, e4, e5, e6, e7, e8, e9
Если пандиагональный квадрат из чисел данного набора девяток составляется, то только так, что девятки будут размещаться в решётках Россера (рис. 11). Каждая решётка окрашена одинаковым цветом.
a |
b |
a |
b |
a |
b |
c |
e |
c |
e |
c |
e |
a |
b |
a |
b |
a |
b |
c |
e |
c |
e |
c |
e |
a |
b |
a |
b |
a |
b |
c |
e |
c |
e |
c |
e |
Рис. 11
Я не проставила индексы элементов девяток, потому что элементы будут расположены в таком порядке, который надо определить. В этом и состоит идея перебора по девяткам.
Модифицирую ту же самую программу. Только теперь перебор идёт не по всем числам массива, а только по девяткам. Так что каждый свободный элемент пробегает только 9 значений, а элементы девятки (ei) только 8 значений, потому что один элемент этой девятки мы фиксируем (элемент в правом нижнем углу).
Конечно, снова подключаю массивы возможных отклонений и в процессе вычисления отклонений в программе проверяю их на принадлежность соответствующим массивам.
Метод оказался очень эффективным. Перебор выполняется за 3-5 секунд.
Приведу пример. Возьмём такой набор девяток (магическая константа 5964):
382 391 454 517 526 634 1858 1966 2218
265 346 355 562 895 913 1795 1894 1921
121 166 274 535 985 1111 1219 1633 2902
22 94 202 319 922 1282 1642 1678 2785
Интересно отметить, что для отклонений p1, p3, p5, p7 будет один массив значений; для отклонений p2, p4, p6, p8 – другой массив значений; и для отклонения p9 – третий массив значений. При этом все значения проверяются на принадлежность общему массиву разных парных отклонений, который для данного массива из 36 чисел такой:
-1872 -1773 -1764 -1728 -1701 -1692 -1665 -1620 -1611 -1584 -1575 -1548 -1539 -1512 -1503 -1485 -1476 -1449 -1440 -1431 -1368 -1359 -1341 -1332 -1323 -1314 -1305 -1296 -1287 -1269 -1260 -1251 -1233 -1215 -1197 -1188 -1179 -1152 -1143 -1125 -1116 -1089 -1080 -1071 -1062 -1044 -1035 -1017 -1008 -999 -981 -972 -963 -936 -927 -909 -900 -891 -873 -864 -855 -828 -819 -801 -792 -783 -756 -747 -729 -720 -702 -684 -675 -639 -621 -612 -603 -585 -576 -567 -558 -549 -540 -513 -504 -495 -468 -459 -450 -441 -432 -423 -387 -369 -360 -351 -342 -333 -324 -315 -288 -261 -252 -243 -225 -216 -207 -189 -180 -171 -153 -144 -135 -108 -99 -81 -72 -45 -36 -27 -9 0 9 27 36 45 72 81 99 108 135 144 153 171 180 189 207 216 225 243 252 261 288 315 324 333 342 351 360 369 387 423 432 441 450 459 468 495 504 513 540 549 558 567 576 585 603 612 621 639 675 684 702 720 729 747 756 783 792 801 819 828 855 864 873 891 900 909 927 936 963 972 981 999 1008 1017 1035 1044 1062 1071 1080 1089 1116 1125 1143 1152 1179 1188 1197 1215 1233 1251 1260 1269 1287 1296 1305 1314 1323 1332 1341 1359 1368 1431 1440 1449 1476 1485 1503 1512 1539 1548 1575 1584 1611 1620 1665 1692 1701 1728 1764 1773 1872
KOLICHESTVO RAZNYH PARNYH OTKLONRNIY = 243
Покажу и массивы для всех отклонений.
KOLICHESTVO ZNACHENIY P1, P3, P5, P7: 94
-1692 -1575 -1512 -1503 -1440 -1368 -1332 -1287 -1269 -1260 -1215 -1152 -1143 -1089 -1080 -1071 -1035 -1017 -1008 -972 -963 -900 -864 -828 -747 -684 -675 -612 -549 -540 -504 -432 -387 -324 -315 -252 -216 -189 -180 -144 -108 -72 -36 -27 9 36 45 72 81 108 144 171 180 189 207 216 252 261 288 324 360 369 387 432 495 504 549 576 612 621 684 747 756 792 864 891 900 936 972 999 1116 1152 1179 1188 1251 1260 1314 1323 1332 1431 1512 1548 1620 1872
KOLICHESTVO ZNACHENIY P2, P4, P6, P8: 95
-1701 -1548 -1512 -1476 -1449 -1368 -1359 -1332 -1305 -1287 -1260 -1188 -1179 -1152 -1080 -1071 -972 -927 -909 -891 -828 -819 -801 -756 -747 -729 -720 -612 -603 -558 -540 -513 -504 -495 -468 -441 -423 -342 -315 -207 -189 -180 -108 -81 -72 -27 -9 0 27 36 72 81 99 108 144 153 171 180 207 216 252 261 288 342 369 441 468 495 540 558 702 720 756 792 801 819 828 864 891 1017 1035 1044 1080 1125 1152 1179 1188 1260 1269 1440 1449 1476 1539 1701 1728
KOLICHESTVO ZNACHENIY P9: 35
-1584 -1575 -1512 -1449 -1440 -1332 -1215 -1152 -1143 -1089 -1080 -1071 -1017 -1008 -972 -963 -900 -828 -108 0 252 261 324 360 369 387 432 495 504 612 621 684 747 756 864
Программа выполнилась за 5 секунд. Квадраты построились такие (рис. 12 – 13):
517 |
1795 |
454 |
1921 |
382 |
895 |
166 |
922 |
535 |
1282 |
274 |
2785 |
526 |
913 |
1966 |
346 |
1858 |
355 |
1219 |
1678 |
985 |
319 |
121 |
1642 |
634 |
562 |
391 |
1894 |
2218 |
265 |
2902 |
94 |
1633 |
202 |
1111 |
22 |
Рис. 12
634 |
562 |
391 |
1894 |
2218 |
265 |
1219 |
1678 |
985 |
319 |
121 |
1642 |
526 |
913 |
1966 |
346 |
1858 |
355 |
166 |
922 |
535 |
1282 |
274 |
2785 |
517 |
1795 |
454 |
1921 |
382 |
895 |
2902 |
94 |
1633 |
202 |
1111 |
22 |
Рис. 13
Здесь ещё нужно заметить, что девятки в наборе можно переставлять, кроме четвёртой девятки. Поскольку мы фиксируем элемент этой девятки, то и сама девятка получается фиксированной, то есть она всегда будет размещаться в одной и той же решётке (решётка жёлтого цвета). Таким образом, имеем 6 перестановок девяток. Я проверила в этом примере все перестановки девяток. Квадрат построился только при перестановке 2-ой и 3-ей девяток, причём он получился эквивалентным квадрату, изображённому на рис. 12 (отражение относительно главной диагонали). Смотрите этот квадрат на рис. 14.
517 |
166 |
526 |
1219 |
634 |
2902 |
1795 |
922 |
913 |
1678 |
562 |
94 |
454 |
535 |
1966 |
985 |
391 |
1633 |
1921 |
1282 |
346 |
319 |
1894 |
202 |
382 |
274 |
1858 |
121 |
2218 |
1111 |
895 |
2785 |
355 |
1642 |
265 |
22 |
Рис. 14
Так как нам достаточно найти всего один квадрат, то переставлять девятки придётся в том случае, когда квадрат из основного набора не найден. При этом очевидно, что перестановка 2-ой и 3-ей девяток даёт эквивалентный квадрат (см. пример на рис. 13). Все варианты перестановок:
1) 1-2-3-4 (основной набор)
2) 1-3-2-4 (даёт эквивалентный квадрат)
3) 2-1-3-4
4) 2-3-1-4
5) 3-1-2-4
6) 3-2-1-4
Итак, есть очень эффективная программа проверки наборов девяток. Теперь вопрос за формированием таких наборов. Это оказалось не очень просто сделать. Поэтапно я это делаю, а для формирования всех наборов девяток нужна хорошая программа, которой у меня пока нет.
Сколько окажется таких наборов? Если их будет очень много (порядка нескольких сотен тысяч), то для их проверки опять же потребуется много времени, даже притом что один набор проверяется 3-5 секунд.
Таким образом, полная проверка каждой потенциальной магической константы мне опять не удаётся.
Могу проверить несколько наборов девяток. Например, приведённые выше наборы девяток для магической константы 4020 проверила, каждый набор проверился за 3 секунды, квадрат не найден.
Продолжение, возможно, следует
Веб-сайты
1. Научный форум dxdy.ru. Тема «Магические квадраты». http://dxdy.ru/topic12959.html
2. Нетрадиционные пандиагональные квадраты (часть II). http://www.natalimak1.narod.ru/pannetr1.htm
3. Нетрадиционные пандиагональные квадраты (часть I). http://www.natalimak1.narod.ru/pannetr.htm
4. С. В. Беляев. Магические квадраты. http://svb.hut.ru/mag.htm
5. Статья в OEIS «Последовательность магических констант наименьших пандиагональных квадратов из простых чисел». https://oeis.org/A179440
6. Конкурс «Нетрадиционные пандиагональные квадраты» на форуме dxdy.ru. http://dxdy.ru/topic38320.html
4 - 18 мая 2011 г.
г. Саратов
На главную страницу
http://www.klassikpoez.narod.ru/index.htm
Пишите мне:
QIP 571-379-327