Форум сайта python.su
0
Подскажите как реализовать условия проверки матрицы на уникальность элементов, т.е чтобы матрица состояла из разных чисел. Создал матрицу вроде все условия прописал, но последнее условия не могу придумать как реализовать, и через циклы перебирал, и через счетчик считал количество одинаковых элементов ничего не получается. Буду премного благодарен.

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)
Офлайн
61
Офлайн
857
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 >>>
Офлайн