返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现随机漫步的详细过程
  • 495
分享到

Python实现随机漫步的详细过程

python随机漫步图python随机漫步的原理Python 随机 2023-03-07 11:03:36 495人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1.  创建 RandomWalk 类2.  选择方向 3.  绘制随机漫步图 4.  总结 本篇

本篇博客将使用 Python 来 生成随机漫步数据,再使用 Matplotlib 库,将以引人注目的方式将这些数据呈现出来。

随机漫步 顾名思义就是随机走出的步伐,它是这样行走得到的路径:每次行走都是完全随机的、没有明确的方向,结果是由一系列随机决策决定的。我们可以将随机漫步看作是 蚂蚁在晕头转向 的情况下,每次都沿随机的方向前行所经过的路径。 

1.  创建 RandomWalk 类

为模拟随机漫步,首先创建一个名为 RandomWalk  的类,其作用是 随机的选择前进方向。这个类需要三个属性:一个是 存储随机漫步次数的变量,其他两个是 列表,分别存储随机漫步经过的每个点的 x 坐标y 坐标

RandomWalk 类只包含两个方法:

  • 方法 __init__ () ,初始化属性
  • 方法 fill_walk () ,计算随机漫步经过的所有点
from random import choice
 
class RandomWalk:
    '''一个生成随机漫步数据的类'''
 
    def __init__(self, num_points = 500):
        '''初始化随机漫步的属性'''
 
        self.num_points = num_points
 
        # 所有随机漫步都使于(0,0)
        self.x_values = [0]
        self.y_values = [0]
  • 为做出 随机决策,将 所有可能的选择 都存储在一个列表中,并在每次决策时,都使用模块 random 中的 choice () 来决定使用哪种选择 。
  • 将随机漫步包含的默认点数设置为 5000,这个数大到 足以生成有趣的模式,又小到可确保能够 快速地模拟随机漫步。
  • 创建两个用于存储 x 值和 y 值的列表,并让每次漫步都从 点(0,0)出发。

2.  选择方向 

我们将使用方法 fill_walk() 来生成 漫步包含的点,并 决定每次漫步的方向。 

import random
 
def fill_walk(self):
    '''计算随机漫步包含的所有点'''
 
    # 不断漫步,直到列表达到指定的长度
    while len(self.x_values) < self.num_points:
 
        # 决定前进方向以及沿这个方向前进的距离
        x_direction = random.choice([1,-1])
        x_distance = random.choice([0,1,2,3,4])
        x_step = x_direction * x_distance
 
        y_direction = random.choice([1,-1])
        y_distance = random.choice([0,1,2,3,4])
        y_step = y_direction * y_distance
 
        # 拒绝原地踏步
        if x_step == 0 and y_step == 0:
            continue
 
        # 计算下一个点的 x 值和 y 的值
        x = self.x_values[-1] + x_step
        y = self.y_values[-1] + y_step
 
        self.x_values.append(x)
        self.y_values.append(y)
  • 先建立一个循环,它不断运行,直到漫步包含所需的点数。方法 fill_walk()的主要部分告诉 python 如何模拟四种漫步决定:向右走还是向左走?沿指定的方向走多远?向上走还是向下走?沿指定的方向走多远?
  •  使用 choice([-1,-1]) 给 x_direction 选择一个值,结果要么是表示向右走的 1,要么是表示向左走的 -1。接下来,choice([0,1,2,3,4]) 随机的选择一个 0~4 的整数,告诉 Python 沿指定方向走多远(x_distance)。通过包含 0 ,不仅能够同时沿两个轴移动,还能够只沿一个轴移动。
  • 将 移动方向乘以移动距离,确定沿 x 轴和 y 轴移动的距离。如果 x_step 为正将向右移动,为负将向左移动,为零将垂直移动;如果 y_step 为正将向上移动,为负将向下移动,为零将水平移动。如果 x_step 和 y_step 都为零,则意味着原地踏步。我们拒绝这样的情况,接着执行下一次循环。
  • 为获取漫步中下一个点的 x 的值,将 x_step 和 x_values 中的最后一个值相加,对 y 值也做相同的处理。获得下一个点的 x 值和 y 值后,将它们分别附件到列表 x_values 和 y_values 的末尾。

3.  绘制随机漫步图 

下面的代码将随机漫步的所有点都绘制出来:

from random import choice
import matplotlib.pyplot as plt
 
class RandomWalk:
    '''一个生成随机漫步数据的类'''
 
    def __init__(self, num_points = 5000):
        '''初始化随机漫步的属性'''
 
        self.num_points = num_points
 
        # 所有随机漫步都使于(0,0)
        self.x_values = [0]
        self.y_values = [0]
 
    def fill_walk(self):
        '''计算随机漫步包含所有的点'''
 
        # 不断漫步,直到列表达到指定的长度
        while len(self.x_values) < self.num_points:
 
            # 决定前进的方向以及沿着这个方向前进的距离
            x_direction = choice([1,-1])
            x_distance = choice([0,1,2,3,4])
            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
 
            # 拒绝原地踏步
            if x_step == 0 and y_step == 0:
                continue
 
            # 计算下一个点的 x 值和 y 值
            x = self.x_values[-1] + x_step
            y = self.y_values[-1] + y_step
 
            self.x_values.append(x)
            self.y_values.append(y)
 
# 创建一个 RandomWalk 实例
random_wander = RandomWalk()
random_wander.fill_walk()
 
# 将所有的点都绘制出来
plt.style.use('classic')
(fig,ax) = plt.subplots()
ax.scatter(random_wander.x_values, random_wander.y_values, s = 15)
plt.show()

4.  总结 

这篇文章主要讲解了随机漫步相关知识点。

到此这篇关于Python实现随机漫步的文章就介绍到这了,更多相关Python随机漫步内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python实现随机漫步的详细过程

本文链接: https://lsjlt.com/news/198804.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python实现随机漫步的详细过程
    目录1.  创建 RandomWalk 类2.  选择方向 3.  绘制随机漫步图 4.  总结 本篇...
    99+
    2023-03-07
    python随机漫步图 python随机漫步的原理 Python 随机
  • Python超详细分步解析随机漫步
    创建RandomWalk类 为模拟随机漫步,我们将创建一个RandomWalk类,随机选择前进方向,这个类有三个属性,一个存储随机漫步的次数,另外两个存储随机漫步的每个点的x,y坐标...
    99+
    2024-04-02
  • Python如何实现随机漫步
    本文小编为大家详细介绍“Python如何实现随机漫步”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现随机漫步”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.  创建 RandomW...
    99+
    2023-07-05
  • Python实现随机游走的详细解释
    1、单一的500步随机游走的例子,从0开始,步长为1和-1,且以相等的概率出现。 注:需要python的内置函数random,不需安装,直接导入即可 import random ...
    99+
    2024-04-02
  • Python numpy线性代数与随机漫步实例分析
    本文小编为大家详细介绍“Python numpy线性代数与随机漫步实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python numpy线性代数与随机漫步实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
    99+
    2023-07-02
  • python 实现syslog 服务器的详细过程
    交换机等网络设备基本上都支持将本地日志通过syslog 协议传输到后端服务器上集中查看和存储,毕竟这类设备的存储容量也有限。操作系统也是支持syslog协议的。从网上看日志集中管理很...
    99+
    2024-04-02
  • PyCharm利用pydevd-pycharm实现Python远程调试的详细过程
    目录一、介绍二、安装三、配置3.1 PyCharm端配置3.2 Ubuntu端配置四、实际调试一、介绍 Python远程调试,即在远程机器上运行python代码在本地进行调试,之前文...
    99+
    2024-04-02
  • Redis Server启动过程的详细步骤
    目录1、 初始化参数配置2、 加载并解析配置文件3、 初始化服务器内部变量4、执行事件驱动框架本文基于社区版Redis 4.0.8 1、 初始化参数配置 由函数initServer...
    99+
    2024-04-02
  • Android Mouse实现过程详细笔记
    简单的做点笔记 ,省得以后忘记了~~ 1、emulator模拟器实际上是一个基于qemu的arm环境模拟器,其源码在external/qemu里面,编译出来的目录在/host/...
    99+
    2022-06-06
    mouse Android
  • JavaScript实现栈结构详细过程
    目录一、认识栈结构二、栈结构封装三、十进制转化为二进制一、认识栈结构 我们知道数组是一种常见的数据结构,并且可以在数组的任意位置插入和删除数据,但是有时候,我们为了实现某些功能,必须...
    99+
    2024-04-02
  • Python 实现随机数详解及实例代码
    Python3实现随机数 random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串。 random.seed(x)改变随机数生成器的种子seed。 一般不必特别去设定seed,...
    99+
    2022-06-04
    随机数 详解 实例
  • Python安装spark的详细过程
    目录一.配置版本二.配置环境 1.配置JDK2.配置Spark3.配置Hadoop三.Pycharm配置spark四.使用anconda中python环境配置spark&n...
    99+
    2024-04-02
  • Django3基于WebSocket实现WebShell的详细过程
    前言 最近工作中需要开发前端操作远程虚拟机的功能,简称WebShell. 基于当前的技术栈为react+django,调研了一会发现大部分的后端实现都是django+channels...
    99+
    2024-04-02
  • 使用Pytorch+PyG实现MLP的详细过程
    目录我的项目环境:一、导入相关库二、加载Cora数据集三、定义MLP网络四、定义模型五、模型训练六、模型验证七、结果总结我的项目环境: 平台:Windows10语言环境:python...
    99+
    2023-03-03
    pytorch mlp分类模型 pytorch pyg
  • PyTorch实现线性回归详细过程
    目录一、实现步骤1、准备数据2、设计模型3、构造损失函数和优化器4、训练过程5、结果展示二、参考文献一、实现步骤 1、准备数据 x_data = torch.tensor([[1.0...
    99+
    2024-04-02
  • Python基于win32com客户端实现Excel操作的详细过程
    目录测试环境代码实现非多线程场景下使用新建并保存EXCEL读取现有EXCEL多线程场景下使用参考连接测试环境 Python 3.6.2 代码实现 非多线程场景下使用 新建并保存EXC...
    99+
    2023-05-18
    Python Excel操作 Python win32com Excel操作
  • 使用Termux在手机上运行Python的详细过程
    一、下载termux 直接搜索Termux,进入官网:  点击箭头所指的标志,进入页面,往下划到下载版本,直接下最新版本,不推荐下载F-Droid:   &nb...
    99+
    2024-04-02
  • springboot+thymeleaf+mybatis实现甘特图的详细过程
    首先我们要明白:这个甘特图需要哪些动态数据。 (1)需要:ID,tName,number,计划开始时间,开始时间,计划结束时间,结束时间,项目负责人,参与人,知情人ID,计划时长(可...
    99+
    2024-04-02
  • Java实现AWT四大事件的详细过程
    目录窗体事件鼠标事件所触发的事件键盘事件动作事件小结常用事件的分类 Java AWT里面的事件可以简单的分为窗体事件(WindowEvent),鼠标事件(MouseEvent),键盘...
    99+
    2024-04-02
  • 学习Python中A*算法实现的详细步骤
    以此加权图为例,用Python实现A*算法。加权图中的节点用粉红色圆圈表示,并且给出了沿节点的路径的权重。节点上方的数字代表节点的启发式值。 首先为算法创建类。一个用于存储与起始节点的距离,另一个用于存储父节点。并将它们初始化...
    99+
    2024-01-23
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作