Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 18, 2022 12:23:00

anotcher
Зарегистрирован: 2022-03-28
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите создать магический квадрат (матрицу)

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

 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)

Офлайн

#2 Июнь 18, 2022 14:00:48

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Помогите создать магический квадрат (матрицу)

https://ru.stackoverflow.com/questions/418982/%D0%9A%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-%D0%BF%D0%BE%D0%B2%D1%82%D0%BE%D1%80%D1%8F%D1%8E%D1%89%D0%B8%D1%85%D1%81%D1%8F-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2-%D0%B2-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B5

или numpy



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Июнь 18, 2022 19:29:47

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Помогите создать магический квадрат (матрицу)

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
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version