我有三个变量ran1 - ran3。 它们需要接收[ran1,ran2] 1-999(整数)和[ran3] 0-1(浮点)之间的值
我很高兴这样做:
* COMPUTE ran1 = TRUNC(UNIFORM(999)) + 1 . * produces values between 1 and 999
* COMPUTE ran2 = TRUNC(UNIFORM(999)) + 1 . * produces values between 1 and 999
* COMPUTE ran3 = UNIFORM(1) . * produces values between 0.01 and 0.99
但已被告知,正常分布对后续内容更有用。
所以,我这样做了:
COMPUTE ran1 = TRUNC(NORMAL(999)) + 1 . * produces values between -4900 and +4744
COMPUTE ran2 = TRUNC(NORMAL(999)) + 1 . * produces values between -4748 and +4902
COMPUTE ran3 = NORMAL(2) . * produces values between -11.10 and +10.72
为什么现在这些值聚集在零附近?如何才能使它们达到要求的范围?
感谢。
答案 0 :(得分:2)
您正在使用普通RNG的旧形式。在该函数中,参数是sigma,而不是均值。
使用RV.NORMAL(平均值,标准偏差)。
RV.xxx表示法可用于所有随机数生成器,包括RV.UNIFORM(min,max)。