Я попытался сгенерировать матрицу (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