Найти - Пользователи
Полная версия: Помогите создать магический квадрат (матрицу)
Начало » Python для новичков » Помогите создать магический квадрат (матрицу)
1
anotcher
Подскажите как реализовать условия проверки матрицы на уникальность элементов, т.е чтобы матрица состояла из разных чисел. Создал матрицу вроде все условия прописал, но последнее условия не могу придумать как реализовать, и через циклы перебирал, и через счетчик считал количество одинаковых элементов ничего не получается. Буду премного благодарен.
 N = int(input())
sum_col, sum_row = [0] * N, [0] * N
sum_head, sum_sec = 0, 0
flag = 'NO'
# создаем матрицу
matrix = [[int(i) for i in input().split()] for _ in range(N)]
for i in range(N):
    # считаем суммы чисел диагоналей
    sum_sec += matrix[i][N - i - 1]
    sum_head += matrix[i][i]
    for j in range(N):
        # считаем суммы чисел строк и столбцов
        sum_col[i] += matrix[i][j]
        sum_row[j] += matrix[i][j]
        #  вот это условие не могу дополнить как положено, возможно оно вовсе не правильное.
        if matrix[i][j] != 0 and matrix[i][j] in range(1, N ** 2 + 1) and sum_col[i] == sum_row[j] and sum_head == sum_sec:
            flag = 'YES'
print(flag)
py.user.next
anotcher
как реализовать условия проверки матрицы на уникальность элементов, т.е чтобы матрица состояла из разных чисел
  
>>> def test_matrix_for_uniq(mtx):
...     lst = sum(mtx, [])
...     return len(lst) == len(set(lst))
... 
>>> test_matrix_for_uniq([[1, 2, 3], [4, 5, 6]])
True
>>> test_matrix_for_uniq([[1, 2, 3], [3, 5, 6]])
False
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB