在Java中生成具有最大值,最小值和平均值(平均值)的随机数
我需要生成具有以下属性的随机数。
最小值应为 200
最大应为 20000
平均值为 500。
可选:第 75 百分位为 5000
当然,它不是均匀分布,也不是高斯分布。我需要给一些左偏度。
我需要生成具有以下属性的随机数。
最小值应为 200
最大应为 20000
平均值为 500。
可选:第 75 百分位为 5000
当然,它不是均匀分布,也不是高斯分布。我需要给一些左偏度。
Say 是你的目标变量,让我们通过执行 来规范化范围。所以现在你想要一些随机变量,用平均值取值。X
Y=(X-200)/(20000-200)
Y
[0,1]
(500-200)/(20000-200)=1/66
你有很多选择,最自然的选择在我看来是Beta分布,你有一个额外的自由度,你可以选择它来满足最后一个四分位数的要求。Y ~ Beta(a,b)
a/(a+b) = 1/66
之后,您只需将 X 返回为Y*(20000-200)+200
要生成Beta随机变量,您可以使用Apache Commons或查看此处。