我正在 python 中使用 numpy 模块来生成随机数。当我需要生成连续区间的随机数如[a,b]时,我会使用
(b-a)*np.random.rand(1)+a
但现在我需要生成区间[a,b]和[c,d]内的均匀随机数,我该怎么办?
我想生成一个在所有间隔长度上均匀的随机数。我不以等概率选择一个区间,然后在区间内生成一个随机数。如果[a,b]和[c,d]长度相等,这种使用没有问题,但是当区间长度不相等时,这种方法生成的随机数并不完全均匀。
你可以做类似的事情
a,b,c,d = 1,2,7,9
N = 10
r = np.random.uniform(a-b,d-c,N)
r += np.where(r<0,b,c)
r
# array([7.30557415, 7.42185479, 1.48986144, 7.95916547, 1.30422703,
# 8.79749665, 8.19329762, 8.72669862, 1.88426196, 8.33789181])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)