Георгий
Александров
Программа на
Yabasic для построения пандиагонального
квадрата порядка n = 4k
Наконец-то
удалось отладить полностью программу и для расчета любых дьявольских квадратов
четно-четного порядка. На экране монитора контролируются магические суммы по
строкам, столбцам и главным диагоналям. Суммы по ломаным диагоналям я проверил
на калькуляторе, убедившись в отсутствии ошибок. В файл
"pan_n=4k.txt" печатается готовый магический квадрат.
Текст программы:
rem Построение магического квадрата порядка
4k+2 методом одностороннего хода шахматного коня
dim i(10000),j(10000),z(100,100),s1(100),s2(100),z1(10000)
open #1,"pan_n=4k.txt","w"
n=12
i=1:j=1:z=1:z(i,j)=1:z1(1)=1
i(1)=i:j(1)=j:nn=n*n
rem Блок формирования чисел z1(i)
dim a(1000),b(1000),c(1000)
t=n-1:for i=0
to t:a(i)=1+i*n:b(i)=a(i):next
i:s=n/2-1
for i=n-1 to n/2 step
-1:s=s+1:b(s)=a(i):next i:s=0:c(s)=0
for i=n/2 to n-1:s=s+1:c(s)=i:next i
for i=n/2-1 to 1 step
-1:s=s+1:c(s)=i:next i:s=0
for i=0 to t:for
j=0 to n-1:s=s+1:z1(s)=b(i)+c(j):next j:next i
s=0
rem Основная программа
for k=2 to nn
i1=i:j1=j:i=i(k-1)+2:j=j(k-1)+1
a0()
if z(i,j)<>0 then i=i1-1:j=j1-1:fi
a0()
i(k)=i:j(k)=j:z(i,j)=z1(k):next k
for i=n to 1 step -1:for j=n to
1 step -1
print z(i,j) using
"####";:print #1,z(i,j) using
"####";
s1(i)=s1(i)+z(i,j):next j:print:print #1:next i:print:print
for i=n to 1 step -1print s1(i);:next i:print:print
for j=1 to n:for
i=n to 1 step -1:s2(j)=s2(j)+z(i,j):next
i:next j
for j=1 to n:print s2(j);:next j:print:print:s=0
for i=1 to n:s=s+z(i,i):next i:print
s:print:print
end
sub a0()
if i<=n and j>n then
j=j-n:fi
if i>n and j<=n then i=i-n:fi
if i>n and j>n then i=i-n:j=j-n:fi
if j<1 then j=n+j:fi
if i<1 then i=n+i:fi
if j>n then j=j-n:fi
end sub
Пример пандиагонального
магического квадрата размером 20х20 показан на странице
http://renuar911.narod.ru/PanMagic_20.JPG
Итак, появилась
возможность строить пандиагональные магические квадраты
любого порядка, за исключением n = 4k+2.
Ссылки на соответствующие статьи:
http://renuar911.narod.ru/ideal_mk.html
http://renuar911.narod.ru/1.htm
http://renuar911.narod.ru/MS4k_pan.html
13 сентября