Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: В разделе Алгоритмы в последнем пункте Магические квадраты решаются за полиномиальное время - O(n^2).
Существуют МК только с нечетной длиной стороны, пример для 3:

__3__
_2_6_ 276 т.е. "каркас" задается числами 2,6,4,8 а те числа, что не вмещаются переносятся до упора другую
1_5_9 ---> 951 сторону, т.е. к примеру 1 перенесется горизонтально и как можно дальше в пределах квадрата.
_4_8_ 438
__7__

1
  1  amir.tu, 04 декабря 2007 г. 8:58:51
      Насчет темы - учту. Не знал что существуют и для четной длины стороны квадрата, для нечетной пример есть у каждого (хотя мало кто об этом знает) - FPC\demo\text\magic.pp - сэмплы Фри Паскаля
     Для нечетного совсем просто. А вот в четном случае рассматривают два случая: когда кратно 4 и не кратно 4, квадрат разделяется на 4 равных части и с каждым проделывается нечто, подобное схеме в нечетном случае (когда не кратно 4 например), думаю, что можно в инете отыскать. Мне вообще об этом дети года 3 назад рассказали :)
  2  amir.tu, 03 декабря 2007 г. 12:16:58
      Плохо получилось - убрались переносы (зачем убирать символы переноса строки в сообщениях?)
     Да, задача о магических квадратах имеет решение со сложностью O(n*n), особенно для нечетного случая легко получается. Для четного случая так же существует подобное по сложности решение, но оно более громозкое. По поводу переносов: а вы не задумывались над тем, что тема для обсуждения и не должна содержать переносы, тема должна быть короткой, например "Алгоритм построения магических квадратов".
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru