Программа для проверки, можно ли преобразовать число элементов N ^ 2 в матрицу N * N симметрии c? - PullRequest
0 голосов
/ 29 марта 2020

Я решал некоторые проблемы с матрицами на днях, когда меня задал этот вопрос. Есть ли способ проверить, можно ли упорядочить N ^ 2 элементов таким образом, чтобы они образовывали симметричную c матрицу?

Например, если N = 3, то N ^ 2 = 9

Позвольте элементам быть: 1 2 3 1 2 3 1 2 3.

Вышеуказанные элементы могут быть организованы для формирования симметричной c матрицы, например: -

1 2 3

2 3 1

3 1 2

Аналогично, 9 1 можно использовать для формирования матрицы следующим образом: -

1 1 1

1 1 1

1 1 1

Но элементы 1 2 3 4 5 6 7 8 9 никоим образом не могут быть расположены для формирования симметрии c матрица. Я много думал об этом вопросе, но не смог найти решение. Может ли кто-нибудь помочь мне?

1 Ответ

1 голос
/ 29 марта 2020

В матрице N × N симметрия c каждая запись выше главной диагонали имеет равный аналог ниже главной диагонали. Это означает, что, кроме N элементов на главной диагонали, все элементы объединяются в равные пары. (Элементы на главной диагонали также могут приходить в равные пары, но они не обязаны этого делать; на симметрию матрицы не влияет, например, a 22 = a 33 или нет.)

Итак, вы можете просто посчитать, как часто встречается каждое отдельное значение, и посмотреть, сколько из значений происходит нечетное количество раз. Если имеется N или меньше различных значений, которые встречаются нечетное число раз, то основная диагональ матрицы N × N может вместить непарные значения, поэтому возможна матрица симметрии c; в противном случае нет.

...