Создайте асимметричную матрицу NxM, строки и столбцы которой независимо суммируются с 1 - PullRequest
0 голосов
/ 30 октября 2019

Учитывая целевой размер матрицы из N строк и M столбцов, возможно ли выбрать значения таким образом, чтобы сумма всех строк и столбцов равнялась 1, при условии, что матрица не симметрична по диагонали? Вот целевая матрица, которую я смог сгенерировать, когда N == M (проблемы возникают, когда N! = M - см. Ниже):

[[0.08345877 0.12844672 0.90911941 0.41964704 0.57709569]
 [0.53949086 0.07965491 0.62582134 0.48922244 0.38357809]
 [0.80619328 0.27581426 0.31312973 0.26855717 0.4540732 ]
 [0.11803505 0.88201276 0.1990759  0.2818701  0.63677383]
 [0.57058968 0.75183898 0.07062126 0.6584709  0.06624682]]

Я пишу это недоуменно. В настоящее время я написал следующий код (перебор), который, я знаю, работает, когда n == m. Однако, если n! = M, суммы по строкам и по столбцам не сходятся к 0, и отношение сумм по строкам к суммам по столбцам сходится к (n / m):

n,m = (5,4)
mat = np.random.random((n,m))
for i in range(100):
    s0 = mat.sum(0)
    s1 = mat.sum(1)[:,newaxis]
    mat = (mat/s0)
    mat = (mat/s1)
    if i%10 == 0:
        print(s0[0]/s1[0,0])

Окончательный результат в этом случае составляет 1,25 (т. Е. Н / м или 5/4). Я начинаю думать, что это не может быть математически возможным. Может кто-нибудь доказать, что я не прав?

1 Ответ

2 голосов
/ 30 октября 2019

Я подозреваю, что вы правы, проблема не может быть решена, если N! = M.

Взять в качестве примера матрицу 2x3:

[[a b c]
 [d e f]]

Предположим, что все строки и все столбцысумма до 1 и показать противоречие. Строки суммируют с 1, поэтому:

a+b+c = 1
d+e+f = 1

Это дает:

(a+b+c)+(d+e+f) = 1 + 1 = 2

Теперь посмотрите на столбцы. Каждый столбец также суммирует 1, поэтому мы имеем:

a+d = 1
b+e = 1
c+f = 1

Объединение трех уравнений столбца дает:

(a+d)+(b+e)+(c+f) = 1 + 1 + 1 = 3

Поскольку сумма всех шести матричных элементов не может быть одновременно 2 и 3, 2 != 3, исходное предположение приводит к противоречию и поэтому опровергается. В более общем плане проблему нельзя решить для N! = M с N строками и столбцами M.

Противоречие исчезает, если N = M для квадратной матрицы.

...