Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Формула Магического квадрата [D7, 2000]


junior_177 ©   (2007-04-22 16:52:00) 

Подскажите  формулу магического квадрата нечеткого порядка. Нашел в Википедии вот такую:

1+(i-j+(n-1)/2)mod n)*n+(-i-j+(n+1)/2)mod n

ИМХО в ней есть ошибки, к примеру, строю нормальный МК 3х3:

n:=3;
for i:=1 to 3 do
  for j:=1 to 3 do
   StringGrid1.Cells[i,j]:=
   IntToStr( (1+(i-j+Round((n-1)/2))mod n)*n+(-i-j+Round((n+1)/2))mod n );

Должно получится, что-то вида:
4  9  2
3  5  7
8  1  6
Мне же выдает:
6  8  1
2  4  9
-2  3  5


MBo   (2007-04-24 08:50:00) [1]

http://mathworld.wolfram.com/MagicSquare.html


junior_177   (2007-04-24 08:39:00) [2]

Спасибо, попробую.


MBo   (2007-04-23 08:41:00) [3]

Если я правильно понял, формула формализует вот этот прием: числа выписываются в форме ромба с пробелами, затем вылезающие за квадрат переставляются в противоположное свободное место, например, 1 встанет между 7 и 8, 6 - между 2 и 7 и т.д. Вот и оформи этот метод так, чтобы правильно получалось

   1
 2   3
4   5   6
  7   8
    9


unregistered_member   (2007-04-23 08:23:00) [4]

up


YurikGL   (2007-04-22 20:39:00) [5]


> воспользуйся методом HelpMeMyGod.GiveMeTheMagicSquareFormula
>

еще надо добавить в uses GodFunctions


default   (2007-04-22 16:58:00) [6]

воспользуйся методом HelpMeMyGod.GiveMeTheMagicSquareFormula


Наверх

Титульная страница Поиск, карта сайта Написать письмо