Как нарисовать двумерный массив со случайными элементами из определенного распределения вероятностей с условием, что все элементы суммируют до определенного значения? - PullRequest
1 голос
/ 26 октября 2019

Я пытаюсь нарисовать однотонный 2D-массив формы (N, 5) из определенного распределения вероятностей (в моем случае это распределение Zipf), но с условием, что сумма всех элементов массива будет равнаопределенное значение типа float. (в следующем названии K)

В настоящее время я не представляю, как это можно сделать, кроме перерисовки, пока не появится случайным образом. (Но это, конечно, безумная неэффективная идея в этом смысле). В настоящее время я использую встроенную функцию numpy для случайных массивов дистрибутива Zipf и запускаю python 3.7:

v2 =  K * numpy.random.zipf(2, (N,5))

Так есть ли способ сделать то, что я хочу, элегантным / эффективным способом? (также неэффективные, но практические решения приветствуются). Может быть, есть какой-нибудь хороший модуль на python (или julia), который мог бы помочь?

РЕДАКТИРОВАТЬ: Что-то, о чем я не думал, конечно, это просто масштабирование результирующего массива моего случайного рисования выше. В любом случае, если есть более «элегантные» / модульные решения, это может быть более приятным решением.

...