Python 随机游走 Python实现随机游走的详细解释
smileLLZ 人气:0想了解Python实现随机游走的详细解释的相关内容吗,smileLLZ在本文为您仔细讲解Python 随机游走的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Python,随机游走,下面大家一起来学习吧。
1、单一的500步随机游走的例子,从0开始,步长为1和-1,且以相等的概率出现。
注:需要python的内置函数random,不需安装,直接导入即可
import random
-*- coding: utf-8 -*- import matplotlib.pyplot as plt import random position=0#设置初始位置 walk=[]#保存位置 steps=500#设置步数为500步 for i in range(steps): step=1 if random.randint(0,1) else -1#如果随机值等于0则step为1,反之为0 position+=step#改变位置(正,负) walk.append(position) fig=plt.figure()#生成窗口 ax=fig.add_subplot(211)#返回一个axes对象,里面的参数abc表示在一个figure窗口中,有a行b列个小窗口,然后本次plot在第c个窗口中 ax.plot(walk) ax=fig.add_subplot(223) ax.plot(walk) ax=fig.add_subplot(224) ax.plot(walk) plt.show() #print walk#打印每一次的累积步数
运行如下:
2、实现多个随机游走
需要用到numpy库
#-*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np nwalks = 8 nsteps = 500 draws = np.random.randint(0, 2, size=(nwalks, nsteps)) # 0 or 1 steps = np.where(draws > 0, 1, -1)#每一次的步长 walks = steps.cumsum(1)#累积步数 fig = plt.figure() ax = fig.add_subplot(111) for i in range(nwalks): ax.plot(walks[i]) plt.show()
加载全部内容