Как создать случайную выборку в Python.с целыми числами.с указанием суммы и размера - PullRequest
0 голосов
/ 24 июня 2018

Есть ли прямая функция или любой другой способ в Python, где я могу генерировать случайные целые числа для моего заданного размера, и я также хочу указать сумму этих чисел.

Например.Я хочу сгенерировать 7 чисел, сумма которых составляет 341.

Могу ли я также указать среднее для этого.Как 7 чисел со средним значением 49 и суммой 341. (необязательно)

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Вы можете использовать random.gauss, чтобы сгенерировать 6 чисел вокруг mean с определенным стандартным отклонением (близостью) и согласно предложению @PatrickArtner построить седьмое, например, используя 3 стандартных разработчиковиз среднего значения:

In []:
import random
vals = [int(random.gauss(341/7, 3)) for _ in range(6)]
vals.append(341 - sum(vals))
vals, sum(vals), sum(vals)/7

Out[]:
([47, 47, 48, 48, 54, 50, 47], 341, 48.714285714285715)
0 голосов
/ 24 июня 2018

Я обнаружил, что этот код, вероятно, сделает достойную работу:

_sum = 341
n = 7
Argentina = np.random.multinomial(_sum, np.ones(n)/n, size=1)[0]
print (Argentina)
[44 46 42 52 53 50 54]
...