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

Related questions

1 answer 117 views
1 answer 193 views
1 answer 125 views
1 answer 179 views
...