How to divide a number into k random numbers in Python

2 Answers

0 votes
import numpy as np

num, k = 156, 5

divides = np.random.default_rng().multinomial(num, [1 / k] * k, size = 1)[0]

print(np.sum(divides), divides)

 
 
 
 
 
'''
run:
 
156 [27 28 39 30 32]
 
'''

 



answered Feb 21, 2023 by avibootz
0 votes
import numpy as np

num, k = 156, 5

lst = np.random.default_rng().dirichlet(np.ones(k), size = 1)

divides = [round(val) for val in lst[0] * num]

print(np.sum(divides), divides)

 
 
 
 
 
'''
run:
 
156 [17, 12, 56, 64, 7]
 
'''

 



answered Feb 21, 2023 by avibootz
...