Задачата магически квадрат е с многовековна история, дори и легенда има. По дефиниция магически квадрат е квадратна числова таблица, в която сумите по ред, колона и диагонал са равни.
Част от първите компютърните игри са използвали като основа известни логически загадки и главоблъсканици.
Подходите са различни: от добре тренирана памет, развито логическо мислене (математически главоблъсканици и пъзели) до умения за прилагане на конкретна успешна стратегия (ролеви игри).
Използвани са задачи, имащи многовековна история и притежаващи неизменно характеристики като:
- изискват определени интелектуални усилия и концентрация на вниманието;
- просто са интересни и занимателни, без да бъдат елементарни.
Следващите редове съдържат описание на видове по размер магически квадрат с нечетен брой квадратчета в страна:
Страна Сума Среда
3 15 5
5 65 13
7 175 25
9 369 41
11 671 61
13 1105 85
Алгоритмите за съставяне на симетричен магически квадрати, съдържащ нечетен брой цифри в страната си са подобни.
Следва описание на алгоритъм за съставяне на магически квадрат 5х5, съдържащ 25 последователни естествени числа със сума по ред колона и диагонал 65.
Описание на алгоритъм, основаващ се на първо избрано място - средата на 1-вия ред.
1. Избираме 1-ви ред, средната колона 3 и записваме 1.
2. Избираме предходен ред, дясна колона. Това е извън очертанията на квадрата и за целта избираме последен ред (V), дясна колона (IV). Записваме 2.
3. Избираме предходен ред (IV), дясна колона (V) и записваме 3.
4. Избираме предходен ред, дясна колона. Това е извън очертанията на квадрата и за целта избираме ред (III), лява колона (I). Записваме 4.
5. Избираме предходен ред (II), дясна колона (II) и записваме 5.
6. Избираме предходен ред (I), дясна колона (III), но там вече е записано число. Избираме ред под текущия (III), същата колона (II). Записваме 6.
7. Избираме предходен ред (II), дясна колона (III) и записваме 7.
8. Избираме предходен ред (I), дясна колона (II) и записваме 8.
9. Избираме предходен ред, дясна колона. Това е извън очертанията на квадрата и за целта избираме последен ред (V), дясна колона (V). Записваме 9.
10. Избираме предходен ред, дясна колона. Това е извън очертанията на квадрата и за целта избираме ред (IV), лява колона (I). Записваме 10.
11. Избираме предходен ред, дясна колона. Там вече съществува записано число (6). Сменяме посоката. Избираме следващ последен ред (V), същата колона (I). Записваме 11.
12. Избираме предходен ред (IV), дясна колона (II) и записваме 12.
13. Избираме предходен ред (III), дясна колона (III) и записваме 13.
14. Избираме предходен ред (II), дясна колона (IV) и записваме 14.
15. Избираме предходен ред (I), дясна колона (V) и записваме 15.
16. Избираме предходен ред, дясна колона. Това е извън очертанията на квадрата и за целта избираме следващ ред (II), същата колона (V). Записваме 16.
17. Избираме предходен ред, дясна колона. Това е извън очертанията на квадрата и за целта избираме ред (I), лява колона (I). Записваме 17.
18. Избираме предходен ред, дясна колона. Това е извън очертанията на квадрата и за целта избираме последен ред (V), колона (II). Записваме 18.
19. Избираме предходен ред (IV), дясна колона (III) и записваме 19.
20. Избираме предходен ред (III), дясна колона (IV) и записваме 20.
21. Избираме предходен ред, дясна колона. Там вече съществува записано число (16). Сменяме посоката. Избираме следващ ред (IV), същата колона (IV). Записваме 21.
22. Избираме предходен ред (III), дясна колона (V) и записваме 22.
23. Избираме предходен ред, дясна колона. Това е извън очертанията на квадрата и за целта избираме ред (II), лява колона (I). Записваме 23.
24. Избираме предходен ред (I), дясна колона (II) и записваме 24.
25. Последното число 25. Избираме предходен ред, дясна колона. Това е извън очертанията на квадрата и за целта избираме последен ред (V), дясна колона (III). Записваме 25.
С това е записано и последното число 25.
Аналогичен алгоритъм може да се опише, ако началното число е в средата на лявата колона. Матрицата ще бъде транспонирана - завъртяна под ъгъл 90 градуса.
Работа с приложението:
За да се въведе число на съответната позиция се извършва следната последователност от действия:
1. Посочва се желаното число от списъчното поле.
2. Посочва се желаното място за поставяне.
За да се премахне число от съответната позиция се посочва самото число.
При всяка корекция въвеждане/изтриване на число се извършва проверка за суми по всички редове и колони.
Да се реализира проект на тема магически квадрат, реализиращ междупредметни връзки Математика и Информатика.
Реализираният проект дава възможност за въвеждане на магически квадрат съдържащ N*N (N е нечетно число) последователни естествени числа. Сумата от числата в произволен ред трябва да е равна на сумата от числата в произволна колона, сумите по двата основни диагонали също да са равни на сумата по ред/колона.
Разгледайте други примерни проекти реализиращи междупредметни връзки и/или вътрешнопредметни връзки, за които е ползвана подобна логическа структура на графичните обекти и/или приложени сходни алгоритми. Прочетете допълнителен материал за: ханойски кули, подреждане по двойки, кьонигсбергски мостове, размени пуловете.