随机漫步理论--python手把手讲解

简介: 随机漫步理论最初由Karl Pearson于1905年提出,它描述的是一种随机过程,其中每一步都是随机的,没有明确的方向。这个理论在自然科学、社会科学和工程领域都有广泛的应用。一个著名的例子是花粉在水滴表面的运动,它的路径可以被模拟为随机漫步模型。

使用Python来模拟随机漫步的过程,我们可以通过生成随机数来模拟每一步的移动方向和距离。在这个模拟过程中,初始位置通常被设定为原点,然后根据随机生成的步长和方向来更新位置,重复这个过程直到达到指定的步数。最终的位置可以用来描述随机漫步的路径。

通过模拟随机漫步过程,我们可以更好地理解和预测自然界和社会世界中的各种现象和行为。例如,在金融领域,随机漫步理论被用来建立股票价格的模型;在生物学中,它被用来研究分子的扩散过程。总之,随机漫步理论的应用涵盖了许多不同的领域,对于理解随机性和不确定性具有重要意义。

首先我们先建立一个叫RandomWalk 的类,它的功能是随机选着前进的方向,这主要有三点,一个是走多少步,向哪个方向走(x轴,y轴)

from random import choice#应用随机模块
class RandomWalk:#用于生成随机漫步的数据

    def __init__(self, num_points=5000):
        """这里做了一个函数,我们假设我们需要走5000点"""
        self.num_points = num_points

        # 所有的步都是从原点开始的
        self.x_values = [0]
        self.y_values = [0]

    def fill_walk(self):
        """现在我们开始确认每一个点走的方向和距离"""

        # 这个决定了方向和距离
        while len(self.x_values) < self.num_points:

            # Decide which direction to go and how far to go in that direction.
            x_direction = choice([1, -1])
            #每次不是向右走加1,就是向左走-1
            x_distance = choice([0, 1, 2, 3, 4])
            #这是一个选择5个步数任意一个,来决定这个点走多少步
            x_step = x_direction * x_distance

            y_direction = choice([1, -1])
            y_distance = choice([0, 1, 2, 3, 4])
            y_step = y_direction * y_distance

            # 如果出现两次都是0的情况况要重新执行
            if x_step == 0 and y_step == 0:
                continue

            # 这里计算下一个漫步的点
            x = self.x_values[-1] + x_step
            y = self.y_values[-1] + y_step

            self.x_values.append(x)
            self.y_values.append(y)

这段代码是一个用于生成随机漫步数据的Python类。首先定义了一个RandomWalk类,其中包括了一个初始化函数init()和一个填充随机漫步数据的函数fill_walk()。

在初始化函数init()中,定义了一个默认参数num_points,表示需要生成的随机漫步点的数量,默认值为5000。在初始化过程中,将初始位置设定为原点(0, 0),并创建了两个空列表x_values和y_values来存储随机漫步的x和y坐标。

fill_walk()函数用于生成随机漫步数据,其中通过while循环来不断生成随机步数,直到达到指定的点数。在每一步中,通过随机选择方向和步长来确定下一个点的位置,并将该位置添加到x_values和y_values列表中。

接下来我们就要开始绘制随机漫步图了


import numpy as np
import matplotlib.pyplot as plt
#这里引用的两大最常用的数据分析函数我就不多提了

from random_walk import RandomWalk
#把上面我们做的漫步类引进来,这里我们单独创建一个文件了,上面那个存在另一个文件,这里把两个文件放在同一个文件夹下

#这里用了一个循环,让程序不断地模拟,后面再设置中断
while True:
 #创建一个RandomWalk实例
    rw = RandomWalk(50_000)
    rw.fill_walk()

    # 把所有的漫步的点都画出来
    plt.style.use('classic')
    fig, ax = plt.subplots(figsize=(15, 9))
    point_numbers = range(rw.num_points)
    ax.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues,
        edgecolors='none', s=1)#画出散点图



    # 这里我隐藏了坐标,方便你全心去观察他们的图像移动
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)

    plt.show()

    keep_running = input("Make another walk? (y/n): ")
    if keep_running == 'n':
    #对应前面的无限循环,只有你下了n指令才会终止
        break

这段代码使用了NumPy和Matplotlib库进行数据分析和可视化。首先引入了NumPy库作为np,并引入了Matplotlib库的pyplot模块作为plt。

然后,从random_walk模块中引入了RandomWalk类,该模块在另一个文件中定义。这个类用于生成随机漫步数据。

接下来是一个无限循环,通过不断模拟随机漫步数据并进行可视化,直到用户输入'n'终止程序。

在每次循环中,首先创建一个RandomWalk实例rw,并调用其fill_walk()方法生成随机漫步数据。

然后,创建一个图形窗口,设置其大小为15x9,并创建一个子图对象ax。

接着,使用scatter()函数绘制散点图,传入rw.x_values和rw.y_values作为数据点的x和y坐标,c参数指定颜色映射,edgecolors参数指定边界颜色,s参数指定散点的大小。

最后,隐藏坐标轴,并使用plt.show()显示图形。

接下来,程序会提示用户输入是否继续进行下一次随机漫步模拟,只有输入'n'时才会跳出循环终止程序。

整体而言,这段代码使用了NumPy和Matplotlib库来生成并可视化随机漫步数据,通过循环不断模拟并展示结果,直到用户选择停止。这可以帮助分析和观察随机漫步的特征和趋势。

这个是最后模拟的图像

截屏2023-12-27 下午8.21.34.png

相关文章
|
存储 运维 监控
物联网平台常见类别及对应平台(一)
物联网平台常见类别及对应平台(一)
2029 21
|
存储 机器学习/深度学习 监控
物联网平台常见类别及对应平台(二)
物联网平台常见类别及对应平台(二)
638 21
|
物联网 智能硬件
物联卡如何选择
选择物联卡需综合考量设备类型与数量、流量需求及卡种特性。明确设备属性后,挑选适宜流量套餐,并了解普通物联网卡、语音卡、NB-IoT卡及陶瓷卡等不同类型的应用场景。同时考虑网络覆盖、服务质量及成本预算,优选性价比高且售后服务完善的运营商,确保物联卡兼容设备并顺利完成实名认证。
物联卡如何选择
|
存储 JSON 物联网
设备管理组件功能介绍
设备管理组件功能介绍
640 2
|
人工智能 监控 算法
基于蓝牙iBeacon定位技术与3DCIS技术的室内定位导航系统,助力智慧空间管理
**维小帮室内定位导航系统**采用3D可视化、蓝牙iBeacon、AI路径规划及物联网技术,提供精准室内导航。系统支持3D/AR导航、实时定位、电子围栏功能,广泛应用于商场、医院、办公楼和园区,提升用户体验并优化管理。例如,商场中的精准营销,医院的智能导诊,办公楼的效率提升,园区的综合管理。通过智能路径规划,确保用户在复杂环境中无碍通行。
745 1
基于蓝牙iBeacon定位技术与3DCIS技术的室内定位导航系统,助力智慧空间管理
|
人工智能 自然语言处理 小程序
政务VR导航:跨界融合AI人工智能与大数据分析,打造全方位智能政务服务
政务大厅引入智能导航系统,解决寻路难、指引不足及咨询台压力大的问题。VR导视与AI助手提供在线预览、VR路线指引、智能客服和小程序服务,提高办事效率,减轻咨询台工作,优化群众体验,塑造智慧政务形象。通过线上线下结合,实现政务服务的高效便民。
466 2
政务VR导航:跨界融合AI人工智能与大数据分析,打造全方位智能政务服务
|
安全 算法 小程序
院内智能导航系统赋能医院智慧化转型,加速医疗服务升级
**智慧医院的智能导航系统**是医疗数字化转型的关键,它改善患者就医体验,减轻医务人员压力,优化资源配置并强化安全监管。3D导航、AR指路、VR辅助、自动导诊和停车管理等先进技术,结合实时定位功能,确保精准、快捷的导航服务。此系统减少患者寻路时间,降低服务台咨询量,优化医院交通,增强患者安全,同时提高就医效率和医院信息化水平。
543 1
院内智能导航系统赋能医院智慧化转型,加速医疗服务升级
|
消息中间件 分布式计算 网络协议
从管道路由到共享内存:进程间通信的演变(内附通信方式经典面试题及详解)
进程间通信(Inter-Process Communication, IPC)是计算机科学中的一个重要概念,指的是运行在同一系统或不同系统上的多个进程之间互相发送和接收信息的能力。IPC机制允许进程间共享数据、协调执行流程,是实现分布式系统、多任务操作系统和并发编程的基础。
355 1
从管道路由到共享内存:进程间通信的演变(内附通信方式经典面试题及详解)
|
机器学习/深度学习 缓存 自然语言处理
采用ChatGPT大模型高效精准文档翻译
这款文档翻译工具支持PDF、Word、PPT、Excel和TXT等多种格式,利用ChatGPT大模型进行高效精准的翻译,覆盖30多种语言。它通过文档解析、预处理、翻译和结果合成步骤工作,并采用缓存、并行处理和负载均衡技术优化性能。该工具满足全球化背景下企业和个人的多语言需求,助力信息交流。
1041 1
采用ChatGPT大模型高效精准文档翻译