Условия задачи:
Магический квадрат Ло Шу. Магический квадрат Ло Шу представляет собой таблицу с 3 строками и 3 столбцами. Магический квадрат Ло Шу имеет свойства:
•таблица содержит числа строго от 1 до 9;
•сумма каждой строки, каждого столбца и каждой диагонали в итоге составляет одно и то же число.
Магический квадрат можно сымитировать в программе при помощи двумерного списка. Напишите функцию, которая принимает двумерный список в качестве аргумента и определяет, является ли список магическим квадратом Ло Шу. Протестируйте функцию
в программе.
Решение задачи:
from random import randint
# Создадим функцию для проверки магического квадрата и на ее основе через цикл while найдем магический квадрат
def main():
ROW = 3
COL = 3
def check(value):
summa = value[0][0] + value[0][1] + value[0][2]
if value[1][0] + value[1][1] + value[1][2] == summa and value[2][0] + value[2][1] + value[2][2] == summa and \
value[0][0] + value[1][1] + value[2][0] == summa and value[0][1] + value[1][1] + value[2][1] == summa and \
value[0][2] + value[1][2] + value[2][2] == summa and value[0][0] + value[1][1] + value[2][2] == summa and \
value[2][2] + value[1][1] + value[0][0] == summa:
return False
else:
return True
flag = True
while flag:
magic = [[randint(1, 9) for x in range(COL)] for i in range(ROW)]
flag = check(magic)
print(f'Это магический квадрат {magic}')
main()