本文用Python模拟随机漫步行为。
1 使用内建的的random模块
import random
position = 0
walk = [position]
steps = 1000
for i in range(steps):
step = 1 if random.randint(0, 1) else -1
position += step
walk.append(position)
random
模块每次只能生成一个样本值,效率很低。如果要生成大量样本值,可用numpy.random
模块。
可用下面的代码测试两者生成 1 , 000 , 000 1,000,000 1,000,000个样本值的速度:
import numpy as np
from random import normalvariate
N = 1000000
%timeit samples =