sum*_*oka 5 python random numpy range python-2.7
我看过其他类似问题的帖子。我知道如何生成N个正整数。我也知道如何限制随机生成的整数的总和。唯一的问题是满足N个值均未超出指定范围的条件。
例如,generate_ints(n, total, low, high)应生成n个值数组,以使每个值介于低值和高值之间,并且总和加起来。任何指针/帮助将不胜感激。
例如generate_ints(4, 40, 4, 15)应该生成类似
[7,10,13,10]
Run Code Online (Sandbox Code Playgroud)
我不在乎数字是否重复,只要它们不高度偏斜即可。我np.randon.randint(5,15,n)用来选择整数。
到目前为止,我已经尝试了以下方法,但是它不起作用-
import numpy as np
import random
from random import uniform as rand
total=50
n=10
low=2
high=15
result=[]
m=0
nobs=1
while nobs <= n:
if m >= (total - low):
last_num= total -new_tot
result.append(last_num)
else:
next_num=np.random.randint(low,high,1)
new_tot = sum(result) + next_num
result.append(next_num)
m=new_tot
nobs +=1
print result
print sum(result)
Run Code Online (Sandbox Code Playgroud)
再次感谢。