Магические квадраты Александрова МК6. 1
В 13 веке известный математик Ян Хуэй сумел составить замечательный МК6, у которого всего-навсего две пары ячеек не отвечают требованию ассоциативности. Они показаны на рисунке: зелёные ячейки. На протяжении почти семи веков никому так и не удалось превысить результат китайского математика. И лишь в 20 веке было доказано, что полностью ассоциативным МК6 быть не может.
Если внимательно рассмотреть квадрат Ян Хуэя, то бросается в глаза полная хаотичность чисел в ячейках. Совершенно неясен метод, при помощи которого его МК6 был построен. Я думаю, что он составлялся великим китайским математиком методом проб, остроумных преобразований и так далее. Наверняка на сей блестящий результат были затрачены не день, не неделя и не месяц.
Но это только одна интересная грань знаний о рассматриваемом квадрате. Уже в 20 веке обнаружились МК6 сотового вида.
По определению Н.Макаровой из Саратова, магический квадрат порядка n = 2k (k>2) называется сотовым, если он составлен из квадратов 2х2, в каждом из которых записаны четыре последовательных числа.
В нашем случае матрица шесть на шесть разбита на девять квадратиков 2х2 (соты), они расставлены по типу минимального МК Ло-Шу и было выявлено довольно большое множество различных МК6. Тут снова возник вопрос: а можно ли найти варианты с максимальным уровнем ассоциативности?
Ближе всех к сказанному подошла совсем недавно упомянутая выше Макарова. Её квадрат показан на рисунке и результат - четыре пары центрально-симметричных ячеек, не являющиеся ассоциативными (белые ячейки).
Но неужели нельзя и в красивых сотовых МК6 достичь такого же максимального уровня ассоциативности, которого давно добился китайский математик?
Мне это удалось сделать всего три дня назад, то есть 23 октября 2021 года. Весь день ушёл на составление программы на языке Yabasic. Два часа назад я заметил отсутствие последнего важного ограничения и с огромным удовольствием сейчас нахожу по 25-35 решений при каждом запуске. Потому что делаю не полный перебор, а использую метод случайного поиска. Ибо на перебор ушло бы огромное количество машинного времени.
Шесть разных вариантов представлены на рисунке.
Текст программы:
rem ПОПЫТКА ПОСТРОЕНИЯ АССОЦИАТИВНОГО МАГИЧЕСКОГО КВАДРАТА 6 х 6
dim z(10,10)
n=7:s=37
sum=0:sum1=0:sum2=0
for w=1 to 200000
v=29
a()
z(1,1)=a:z(1,2)=b:z(2,2)=c:z(2,1)=d
z(n-1,n-1)=s-z(1,1):z(n-1,n-2)=s-z(1,2)
z(n-2,n-2)=s-z(2,2):z(n-2,n-1)=s-z(2,1)
v=9
a()
z(1,3)=a:z(1,4)=b:z(2,4)=c:z(2,3)=d
z(n-1,n-3)=s-z(1,3):z(n-1,n-4)=s-z(1,4)
z(n-2,n-4)=s-z(2,4):z(n-2,n-3)=s-z(2,3)
v=13
a()
z(1,5)=a:z(1,6)=b:z(2,6)=c:z(2,5)=d
z(n-1,n-5)=s-z(1,5):z(n-1,n-6)=s-z(1,6)
z(n-2,n-6)=s-z(2,6):z(n-2,n-5)=s-z(2,5)
v=1
a()
z(3,1)=a:z(3,2)=b:z(4,2)=c:z(4,1)=d
z(n-3,n-1)=s-1-z(3,1):z(n-3,n-2)=s-z(3,2)
z(n-4,n-2)=s-z(4,2):z(n-4,n-1)=s+1-z(4,1)
v=17
a()
z(3,3)=a:z(4,3)=b
z(n-3,n-3)=s-z(3,3):z(n-4,n-3)=s-z(4,3)
k=0
for j=1 to 6
sum=0
for i=1 to 6
sum=sum+z(j,i)
next i
if sum=111 then k=k+1:fi
next j
for i=1 to 6
sum=0
for j=1 to 6
sum=sum+z(j,i)
next j
if sum=111 then k=k+1:fi
next i
sum1=sum1+z(1,1)+z(2,2)+z(3,3)+z(4,4)+z(5,5)+z(6,6)
if sum1=111 then k=k+1:fi
sum1=0
sum2=sum2+z(6,1)+z(5,2)+z(4,3)+z(3,4)+z(2,5)+z(1,6)
if sum2=111 then k=k+1:fi
sum2=0
if k=14 then
if z(3,3)<>z(3,4) then
if z(3,3)<>z(4,3) then
if z(3,6)<>z(4,6) then
if z(3,5)<>z(4,5) then
if z(3,5)<>z(3,6) then
if z(4,5)<>z(4,6) then
if z(3,5)<>z(4,6) then
if z(4,5)<>z(3,6) then
ss=ss+1:print ss
for j=1 to 6
for i=1 to 6
print z(j,i) using "###";
next i
next j
print "-------------------------"
fi:fi:fi:fi:fi:fi:fi:fi:fi
next w
sub a()
u=v-1
p=ran()
if p<=1/24 then a=u+1:b=u+2:c=u+3:d=u+4:fi
if p>1/24 and p<=2/24 then a=u+1:b=u+2:c=u+4:d=u+3:fi
if p>2/24 and p<=3/24 then a=u+1:b=u+3:c=u+2:d=u+4:fi
if p>3/24 and p<=4/24 then a=u+1:b=u+3:c=u+4:d=u+2:fi
if p>4/24 and p<=5/24 then a=u+1:b=u+4:c=u+2:d=u+3:fi
if p>5/24 and p<=6/24 then a=u+1:b=u+4:c=u+3:d=u+2:fi
if p>6/24 and p<7/24 then a=u+2:b=u+1:c=u+3:d=u+4:fi
if p>7/24 and p<=8/24 then a=u+2:b=u+1:c=u+4:d=u+3:fi
if p>8/24 and p<=9/24 then a=u+2:b=u+3:c=u+1:d=u+4:fi
if p>9/24 and p<=10/24 then a=u+2:b=u+3:c=u+4:d=u+1:fi
if p>10/24 and p<=11/24 then a=u+2:b=u+4:c=u+1:d=u+3:fi
if p>11/24 and p<=12/24 then a=u+2:b=u+4:c=u+3:d=u+1:fi
if p>12/24 and p<=13/24 then a=u+3:b=u+1:c=u+2:d=u+4:fi
if p>13/24 and p<=14/24 then a=u+3:b=u+1:c=u+4:d=u+2:fi
if p>14/24 and p<=15/24 then a=u+3:b=u+2:c=u+1:d=u+4:fi
if p>15/24 and p<=16/24 then a=u+3:b=u+2:c=u+4:d=u+1:fi
if p>16/24 and p<=17/24 then a=u+3:b=u+4:c=u+1:d=u+2:fi
if p>17/24 and p<=18/24 then a=u+3:b=u+4:c=u+2:d=u+1:fi
if p>18/24 and p<=19/24 then a=u+4:b=u+1:c=u+2:d=u+3:fi
if p>19/24 and p<=20/24 then a=u+4:b=u+1:c=u+3:d=u+2:fi
if p>20/24 and p<=21/24 then a=u+4:b=u+2:c=u+1:d=u+3:fi
if p>21/24 and p<=22/24 then a=u+4:b=u+2:c=u+3:d=u+1:fi
if p>22/24 and p<=23/24 then a=u+4:b=u+3:c=u+1:d=u+2:fi
if p>23/24 and p<=1 then a=u+4:b=u+3:c=u+2:d=u+1:fi
end sub
Свидетельство о публикации №221102600684