кодесурса
«Python

Python Math: вычислить магический квадрат

script1adsense2code
script1adsense3code

Python Math: упражнение 20 с решением

Напишите программу на Python для расчета магического квадрата.

Магический квадрат - это расположение различных чисел (т. Е. Каждое число используется один раз), обычно целых чисел, в квадратной сетке, где все числа в каждом ряду и в каждом столбце, а также числа в главной и вспомогательной диагоналях - все добавьте к тому же числу, называемому «магическая константа». Магический квадрат имеет то же количество строк, что и столбцы, и в обычной математической записи «n» обозначает количество строк (и столбцов), которые он имеет. Таким образом, магический квадрат всегда содержит n2 чисел, и его размер (количество строк [и столбцов] в нем) описывается как «порядка n».

Наглядная презентация:

«Magic

Пример решения : -

Код 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code