Как сгенерировать матрицу с фиксированной общей суммой, когда диагональ матрицы равна нулю? - PullRequest
0 голосов
/ 02 августа 2020

Я попытался сгенерировать матрицу (20 * 20) с фиксированной общей суммой, в то время как диагональные элементы матрицы равны нулю. Процесс python работал хорошо, если общая сумма матрицы была 140,200,260 (например, всего = 140, 200, 260). Однако я обнаружил, что если общая сумма матрицы меньше 80 (например, всего = 80), python процесс не может сгенерировать требуемую матрицу. Процесс python выглядит следующим образом:

d = 0
while (d < total - 0.1) or (d > total + 0.1):
    a = np.random.exponential(20) 
    b = np.random.exponential(20)
    dist = np.outer(a, b)
    np.fill_diagonal(dist, -1)
    d = np.sum(dist[(dist != -1)])
return dist
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...