Форум сайта python.su
Подскажите как реализовать условия проверки матрицы на уникальность элементов, т.е чтобы матрица состояла из разных чисел. Создал матрицу вроде все условия прописал, но последнее условия не могу придумать как реализовать, и через циклы перебирал, и через счетчик считал количество одинаковых элементов ничего не получается. Буду премного благодарен.
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)
Офлайн
Офлайн
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 >>>
Офлайн