Реализации алгоритмов/Построение магических квадратов: различия между версиями

Содержимое удалено Содержимое добавлено
м Ivan Shmakov переименовал страницу Программные реализации построения магических квадратов в [[Реализации алгоритмов/Построение магических…
Использован {{BookCat}}; пробелы; →‎К переименованию: снят шаблон после переименования.
Строка 1:
{{К переименованию |2014-11-21|Реализации алгоритмов/Построение магических квадратов}}
 
== Реализация на языке программирования [[PHP]] ==
 
===[[w:Магический квадрат#Метод террас|Метод террас]] (квадраты нечётного порядка)===
<big><source lang="php">
<?php
$n = 7; // Размерность (нечетное число)
Строка 23 ⟶ 21 :
$ss = (($N-1)/2);
$nn = 1;
for($i=0; $i<$N; $i++)
for($j=0; $j<$N; $j++) {
$x = (-$ss+$i+$j+$N) % $N;
Строка 29 ⟶ 27 :
$sol[$x][$y] = $nn++;
}
 
return $sol;
}
?>
</source></big>
 
<big><source lang="php">
<?php
$n = 7; // Размерность (нечетное число)
Строка 74 ⟶ 72 :
}
 
// заполнение левой части квадрата, относительно
// левой диагонали (саму диагональ не трогаем)
$glob_i = 1;
Строка 96 ⟶ 94 :
}
 
// заполнение правой части квадрата, относительно
// левой диагонали (саму диагональ не трогаем)
$glob_j = $n - 2;
Строка 120 ⟶ 118 :
unset($square[$k]);
}
}
 
return $square;
}
?>
</source></big>
 
=== Проверка ===
<big>
<source lang="php">
<?php
Строка 168 ⟶ 165 :
$row += $array[$i][$j];
$col += $array[$j][$i];
 
$right_diagonal += ($i == $j) ? $array[$i][$j] : 0;
$left_diagonal += (($n - $i) == ($j - 1)) ? $array[$i][$j] : 0;
Строка 183 ⟶ 180 :
}
?>
</source></big>
 
== Реализации на языке Python ==
Строка 273 ⟶ 270 :
</source>
 
{{BookCat}}
[[Категория:Программирование]]