Python Math: вычислить магический квадрат
Python Math: упражнение 20 с решением
Напишите программу на Python для расчета магического квадрата.
Магический квадрат - это расположение различных чисел (т. Е. Каждое число используется один раз), обычно целых чисел, в квадратной сетке, где все числа в каждом ряду и в каждом столбце, а также числа в главной и вспомогательной диагоналях - все добавьте к тому же числу, называемому «магическая константа». Магический квадрат имеет то же количество строк, что и столбцы, и в обычной математической записи «n» обозначает количество строк (и столбцов), которые он имеет. Таким образом, магический квадрат всегда содержит n2 чисел, и его размер (количество строк [и столбцов] в нем) описывается как «порядка n».
Наглядная презентация:
Пример решения : -
Код Python:
def magic_square_test(my_matrix):
iSize = len(my_matrix[0])
sum_list = []
#Horizontal Part:
sum_list.extend([sum (lines) for lines in my_matrix])
#Vertical Part:
for col in range(iSize):
sum_list.append(sum(row[col] for row in my_matrix))
#Diagonals Part
result1 = 0
for i in range(0,iSize):
result1 +=my_matrix[i][i]
sum_list.append(result1)
result2 = 0
for i in range(iSize-1,-1,-1):
result2 +=my_matrix[i][i]
sum_list.append(result2)
if len(set(sum_list))>1:
return False
return True
m=[[7, 12, 1, 14], [2, 13, 8, 11], [16, 3, 10, 5], [9, 6, 15, 4]]
print(magic_square_test(m));
m=[[2, 7, 6], [9, 5, 1], [4, 3, 8]]
print(magic_square_test(m));
m=[[2, 7, 6], [9, 5, 1], [4, 3, 7]]
print(magic_square_test(m));
Пример вывода:
Правда Правда Ложь
Блок - схема:
Визуализируйте выполнение кода Python:
Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу на Python для умножения двух целых чисел без использования оператора * в Python.
Далее: Напишите программу на Python для печати всех простых чисел (Sieve of Eratosthenes), меньших или равных указанному числу.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования