Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/88: Рейтинг темы: голосов - 88, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 13.04.2021
Сообщений: 10

Магический квадрат

13.04.2021, 21:55. Показов 17288. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python.Магическим квадратом называют таблицу, в которой записаны числа 1,2,3,… по одному разу, так что сумма чисел в каждой строке и в каждом столбце равные. Мы расскажем вам об одном из методов построения магических квадратов (его называют сиамским). Он годится только для построения квадратов с нечётной стороной (3×3,5×5,…).

Поставим число 1 в верхнюю клетку центрального столбца. Далее будем двигаться по диагонали вправо-вверх, расставляя в клетки последовательно числа 2,3,4,…. Если мы вышли за пределы таблицы вверх, то нужно перейти к нижней клетке того же столбца и продолжить с неё. Если мы вышли за правую границу, нужно перейти к левой клетке той строки, куда мы должны были попасть. Если же мы одновременно вышли и вверх, и вправо, то нужно перейти в левую нижнюю клетку квадрата.

Если в следующей клетке на нашем пути уже стоит число, то вместо хода “вправо-вверх” нужно сделать ход “вниз” (опять же, если мы при этом выйдем за границы квадрата, нужно перейти к верхней клетке того же столбца). Примеры для квадратов 3×3 и 5×5 показаны на рисунках.



Входные данные

На вход подается одно натуральное нечётное число N, не превосходящее 30 — размер квадрата.

Выходные данные

Выведите числа, записанные в квадрате. Выравнивать числа по столбцам не обязательно. Обратите внимание: требуется вывести именно магический квадрат, полученный применением указанного метода.

Примеры
Ввод
Вывод
3
8 1 6
3 5 7
4 9 2
5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9


Уважаемые корифеи помогите разобраться.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.04.2021, 21:55
Ответы с готовыми решениями:

Магический квадрат
Пытаюсь сделать матрицу, которая будет формировать магический квадрат. Почему питон ругается на плюсы в 20,22,30 и 32 строке? Как исправить...

Магический квадрат
Магический квадрат Магическим квадратом называют таблицу, в которой записаны числа 1,2,3,… по одному разу, так что сумма чисел в каждой...

Построить магический квадрат заданного порядка
Магическим квадратом порядка N называется квадратная матрица размера N × N , составленная из чисел 1, 2, ..., N 2 так, что суммы по каждому...

2
0 / 0 / 0
Регистрация: 12.04.2021
Сообщений: 21
13.04.2021, 22:09
Сирник, лови! Переменных, списков(названия) поменяй ОБЯЗАТЕЛЬНО!
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
N = int(input())
length = N*N
mx = [[None for z in range(N)]for z in range(N)]
y = 0
x = N // 2
mx[y][x]=1
for i in range(2,length+1):
  old_x,old_y=x,y
  x = (x+1) % N
  y = (y-1) % N
  if not mx[y][x] is None:
    x = old_x
    y = (old_y+1) % N
  mx[y][x] = i
a = []
for y in mx:
  a+=y
print(' '.join(map(str, a)))
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
14.04.2021, 10:56
а так?
Python
1
2
3
4
5
6
7
import numpy
 
def magicsq(a):
    if numpy.array_equal(numpy.unique(a.sum(axis=1)),numpy.unique(a.sum(axis=0))):
        return True
    else:
        return False
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2021, 10:56
Помогаю со студенческими работами здесь

Магический квадрат
Определить является ли массив размерности n × n логическим магическим квадратом, то есть суммы по всем горизонталям, вертикалям и двум...

Магический шар 8
Магический шар 8 - шуточный способ предсказывать будущее. Программа должна просить пользователя задать некий вопрос, чтобы случайным...

Магический метод класса на C
Доброго времени суток. Есть класс: class MyClass: def __call__(self, X): # вычисления с полями класса и входным...

Магический матод __add__
Всем привет. Не могу разобраться с данной задачей. Вот она: "Для одной игры необходимо реализовать механику магии, где при соединении...

Класс MagicalGift (Магический дар)
Напишите класс MagicalGift (Магический дар). Экземпляр класса при инициализации принимает аргументы: имя мага; произвольное число...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru