მთავარი » ფაილები » Games » Games |
13.12.2013, 22:19 | |
Магический, или волшебный квадрат— это квадратная таблица n x n, заполненная n2 числами, таким образом, что сумма чисел в каждой строке, каждом столбце и на обеих диагоналях оказывается одинаковой. Нормальным называется магический квадрат, заполненный целыми числами от 1 до n2. Магические квадраты существуют для всех порядков n ≥ 1, за исключением n = 2, хотя случай n = 1 тривиален — квадрат состоит из одного числа. Минимальный нетривиальный случай показан ниже, он имеет порядок 3. Сумма чисел в каждой строке, столбце и на диагоналях, называется магической константой , M. Магическая константа нормального волшебного квадрата зависит только от n и определяется формулой Программа для вычисления является ли массив магическим квадратомКод программы написан на языке программирования Pascalprogram magiai;const n=3;var a:array [1..n,1..n] of integer;i,j,s,s1,s2:integer;b:boolean;{n - размерность массиваa - массивi,j - индексы массиваs - сумма первой строкиs1 - сумма по горизонталиs2 - сумма по вертикалиs3 - сумма первой диагоналиs4 - сумма второй диагонали}beginwriteln('Программа по нахождению магической матрицы');for i:=1 to n do {ввод массива}for j:=1 to n dobeginwriteln('Введите [',i,',',j,'] элемент');read(a[i,j]);end;s3:=0;s4:=0;for i:=1 to n do {вывод массива}beginfor j:=1 to n dobeginwrite(a[i,j],' ');if i = j {подсчёт суммы первой диагонали}then s3:=s3+a[i,j];if i = n+1-j {подсчёт суммы второй диагонали}then s4:=s4+a[i,j];end;writeln;end;s:= 0; {обмуление суммы}b:= true; {начальное значения булевой переменной}for i:=1 to n do {суммирование первой строки}s:=s+a[1,i];for i:=1 to n do {проход по массиву с подсчётом сумм}begins1:=0;s2:=0;for j:=1 to n dobegins1:=s1+a[i,j];s2:=s1+a[j,i];end;if (s<>s1) or (s<>s2) {если сумма по вертикали или по горизонтали не равны начальному значению, то выводим сообщение об этом}thenbeginb:= false;exit;end;end;if (s<>s3) or (s<>s4) {проверка равенства диагоналей}then b:=false;if b {если матрица является магической, то выводит сообщение об этом}then writeln('Матрица является магическим квадратом');else writeln('Матрица не является магическим квадратом');end.Исторически значимые магические квадратыКвадраты с дополнительными свойствамиДьявольский магический квадратДьявольский магический квадрат — магический квадрат, в котором также с магической константой совпадают суммы чисел по ломаным диагоналям в обоих направлениях.Такие квадраты называются ещё пандиагональными.Существует 48 дьявольских магических квадратов 4×4 с точностью до поворотов и отражений. Если принять во внимание еще и их дополнительную симметрию — торические параллельные переносы, то останется только 3 существенно различных квадрата:Однако было доказано, что из последнего третьего варианта простейшими перестановками чисел получаются первые два квадрата. То есть третий вариант - это базовый дьявольский квадрат, из которого различными преобразованиями можно построить все остальные. Пандиагональные квадраты существуют для нечётного порядка n >3, для любого порядка двойной чётности n = 4k (k = 1,2,3…) и не существуют для порядка одинарной чётности n = 4k+2 (k = 1,2,3…). Пандиагональные квадраты четвёртого порядка обладают рядом дополнительных свойств, за которые их называют совершенными. Совершенных пандиагональных квадратов нечётного порядка не существует. Среди пандиагональных квадратов двойной чётности выше 4 имеются совершенные. Пандиагональных квадратов пятого порядка 3600. С учётом торических параллельных переносов имеется 144 различных пандиагональных квадратов. Один из них показан ниже. Если пандиагональный квадрат еще и ассоциативный, то он носит название идеальный Пример идеального магического квадрата: Примеры более сложных квадратов Методически строго отработаны магические квадраты нечётного порядка и порядка двойной чётности . Формализация квадратов порядка одинарной чётности намного труднее. Сказанное иллюстрируют следующие схемы: Cуществуют несколько десятков других методов построения магических квадратов Шахматный подход Известно, что шахматы, как и магические квадраты, появились десятки веков назад в Индии. Поэтому неслучайно возникла идея шахматного подхода к построению магических квадратов. Впервые эту мысль высказал Эйлер. Он попытался получить полный магический квадрат непрерывным обходом коня. Однако, это сделать ему не удалось, поскольку в главных диагоналях суммы чисел отличались от магической константы. Тем не менее шахматная разбивка позволяет создавать любой магический квадрат. Цифры заполняются регулярно и построчно с учётом цвета ячеек .
| |
ნანახია: 469 | რამოტვირთვები: 0 | |
სულ კომენტარები: 0 | |
სექციის კატეგორიები | |
---|---|
|
ძებნა |
---|
შესვლის ფორმა |
---|
მინი-ჩეთი |
---|
სტატისტიკა |
---|
საიტის მეგობრები |
---|