首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python生成随机漫步序列——醉鬼能回到家吗?

写在前面

最近小编又重温了一下《随机漫步的傻瓜》这本书,再次被纳西姆的智慧所征服,不过本文小编可不准备讲这些读后感,而是准备着重讲一下随机漫步这个词汇。因为随机漫步这个词汇可以说现在已经广泛地被用于文理,这个词汇期初起源于科学杂志上面的一篇论文,用来介绍一个醉鬼行走的路线路径,而后这一次被引入数学、金融、哲学思想方面,更是诞生了想随机分析这些学科。因此,本文准备介绍一些怎么使用python来生成随机游走序列以及绘制相应的路径图,下面正式开始。

随机漫步简介

随机漫步源于科学杂志上面的一篇《醉鬼漫步》的论文,主要用来形容后期事件对于前期事件的非依赖性,如果用时间序列的术语来讲就是滞后一期的数据不依赖于前一期的数据,历史数据的发生对于后续数据的产生不具备影响。可以用以下公式表示:

其中x_t代表第t期的值,sigma_t是一个服从标准正态分布的白噪声序列,如果将这个等式进行展开,即可得到:

所以现在的值不过是一系列随机数的和,因此历史数据对当期值不存在任何预测与指示作用,任何依赖于历史数据的预测都是无效的。不够本文可不准备将这些,毕竟讲述随机分析绝对是一件大工程(不然也不会有随机过程分析以及随机分析这些相关学科)。本文主要是介绍怎么使用python去生成随机漫步序列并且绘制相应的路径图。

python与随机漫步序列生成

在这一部分,小编着重介绍一下怎么使用python去生成随机漫步序列,小编会在这里介绍两种方法:直接使用python内置模块去实现;使用第三方库numpy实现。下面先介绍怎么使用python内置的函数去生成随机漫步序列。因为随机漫步中每一步数字的生成都是随机的,出现正数和负数的概率相同,因此这里使用1和-1来代表每一步生成的数字,这可以通过python内置模块random实现。

这样便生成了一个随机漫步序列,为了看一下生成的序列情况,这里使用matplotlib中的绘图函数进行图形展示。

随机漫步示例

可以看出生成序列中-1较多,使得累计和最终呈现负值。这里是使用python中内置的random模块实现的,不过使用random模块去生成序列一般效率较低,这方面numpy的优势就显得更加明显,下面可以参考一下numpy的生成过程。

这种方式更加快捷,基本是python中内置模块random的100倍左右,当然这里生成的数相对较少,可能你体会不到此间的效率,但是当你需要生成的数据量较大时,两种方式的效率就出现了极大的差距。所以后面对于随机漫步序列的生成主要使用numpy。

醉鬼能够走到目的地吗

随机漫步源自于醉鬼,所以最后小编就和大家一起分析一下醉鬼漫步的结果,主要考虑一下醉鬼是否能够回到家。这里考虑醉鬼的出发点就是零点,而家就距离0点2000步的水平线上,所以如果醉鬼最终能够到家,那么他又会再一次处于0水平线上。当然,如果使用一个例子的话会显得不能说明问题,因此这里重复生成5000个随机漫步序列,来统计回到0水平线的频数。

最终得出了醉鬼回到家的概率为1.88%,可见当你喝醉酒了,你真的很难正常回到家的,为了安全考虑,最好还是不要喝多,除非你是和熟人在一起。

后记

本文讲到这里就暂告一段落了,本期文章和大家聊了一下随机漫步序列的一些话题,主要介绍了怎么使用python去生成随机漫步序列以及绘制随机漫步路径图。这期文章也给大家初步地聊了一下numpy的使用方法,关于这个库后续会有更多介绍,敬请期待。最后再次感谢你们的支持与鼓励,你们的陪伴是小编前进的动力!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180907G1Z8ZK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券