Какой самый лучший (самый быстрый) способ сделать это?
Это дает то, что я считаю правильным ответом, но, очевидно, при N = 10e6 это мучительно медленно. Я думаю, что мне нужно сохранить значения Xi, чтобы я мог правильно рассчитать стандартное отклонение, но есть ли какие-то методы, чтобы сделать это быстрее?
def randomInterval(a,b):
r = ((b-a)*float(random.random(1)) + a)
return r
N = 10e6
Sum = 0
x = []
for sample in range(0,int(N)):
n = randomInterval(-5.,5.)
while n == 5.0:
n = randomInterval(-5.,5.) # since X is [-5,5)
Sum += n
x = np.append(x, n)
A = Sum/N
for sample in range(0,int(N)):
summation = (x[sample] - A)**2.0
standard_deviation = np.sqrt((1./N)*summation)