拉丁超立方采样来自正态分布(Python)

时间:2012-10-14 16:47:59

标签: python random python-2.7 random-sample

如何在python 2.7中使用拉丁超立方采样技术从正态分布生成10个随机数?随机数的范围应为5到14。

我试过了

import random
from random import randint
iter = 10
segSize = 1 / iter
for i in range(iter):
segMin = i * segSize
point = segMin+ (random.normalvariate(7.5,1)*segSize)
pointValue = (point * (14 - 5)) + 4
print point
print pointValue

谢谢

1 个答案:

答案 0 :(得分:1)

试试这个:

def rand:
 import random
 from random import randint
 iter = 10
 segSize = 1/float(iter)
 for i in range(iter):
         segMin = float(i) * segSize
         point = segMin + (random.normalvariate(7.5,1) * segSize)
         pointValue = (point * (14 - 5)) + 4
         print point
         print pointValue

您的问题似乎是整数乘法等,Python在您的部门中截断为零。

当我运行它时,我得到:

0.686848045493
10.1816324094
0.871425699273
11.8428312935
1.08794202088
13.7914781879
1.08502172623
13.7651955361
1.24462345735
15.2016111161
1.10687801576
13.9619021418
1.1394488663
14.2550397967
1.37407532844
16.3666779559
1.54666717385
17.9200045647
1.6465869841
18.8192828569