RandomWalk随机游走:

在自然界,物理学,生物学,化学,经济学等众多领域,随机游走都有实际的用途,例如,其可以描述一个漂浮在水滴上的花粒因受到水分子的作用力而在水滴表面随机移动。诸如此类的不规律无规则的自然现象及活动,因此具有一定的研究意义。

代码实现

本次主要使用choice和matplotlib.pyplot

import matplotlib.pyplot as plt
from random import choice class RandomWalk:
"""定义随机游走属性"""
def __init__(self, points_num=10000):
self.points_num = points_num self.x_values = [0]
self.y_values = [0] def fill_walk(self):
while len(self.x_values) < self.points_num: x_direction = choice([1, -1])
x_distance = choice([0, 1, 2, 3, 4])
x_value = x_direction * x_distance y_direction = choice([1, -1])
y_distance = choice([0, 1, 2, 3, 4])
y_value = y_direction * y_distance x = self.x_values[-1] + x_value
y = self.y_values[-1] + y_value self.x_values.append(x)
self.y_values.append(y) if __name__ == '__main__':
rw = RandomWalk()
rw.fill_walk() plt.style.use("classic")
fig, ax = plt.subplots(figsize=(15, 9)) # 适应屏幕,调整绘图尺寸
ax.scatter(rw.x_values, rw.y_values, s=15)
points_numer = range(rw.points_num)
ax.scatter(rw.x_values, rw.y_values, c=points_numer,
cmap=plt.cm.Blues, edgecolors='none', s=15) # 使用渐近色来表示
ax.scatter(0, 0, c="green", edgecolors='none', s=100) # 将起点突出显示出来
ax.scatter(rw.x_values[-1], rw.y_values[-1], c='red', edgecolors='none', s=100) # 将终点突出显示出来
ax.get_xaxis().set_visible(False) # 隐藏x坐标轴
ax.get_yaxis().set_visible(False) # 隐藏y坐标轴
plt.show()

生成的随机游走图:

多展示几张来展示每次生成的点都是随机,无规则无规律的。

RandomWalk随机游走的更多相关文章

  1. 随机游走模型(RandomWalk Mobility)

    随机游走模型由首先由爱因斯坦在1926年以数学方式描述.由于自然界中的许多实体会以不可预知的方式移动,因此随机游走模型用来描述这种不稳定的移动.在这种移动模型中,移动节点随机选择一个方向和速度来从当前 ...

  2. 【Matlab】随机游走产生图像效果

    随机游走类似布朗运动,就是随机的向各个方向走吧.产生的图像实在漂亮,所以还是贴出分享. clear all; close all; clc; n=100000; x= 0; y= 0; pixel=z ...

  3. 介绍一个全局最优化的方法:随机游走算法(Random Walk)

    1. 关于全局最优化求解   全局最优化是一个非常复杂的问题,目前还没有一个通用的办法可以对任意复杂函数求解全局最优值.上一篇文章讲解了一个求解局部极小值的方法--梯度下降法.这种方法对于求解精度不高 ...

  4. Loj #2542. 「PKUWC2018」随机游走

    Loj #2542. 「PKUWC2018」随机游走 题目描述 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次 ...

  5. LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp + FMT)

    写在这道题前面 : 网上的一些题解都不讲那个系数是怎么推得真的不良心 TAT (不是每个人都有那么厉害啊 , 我好菜啊) 而且 LOJ 过的代码千篇一律 ... 那个系数根本看不出来是什么啊 TAT ...

  6. 【LOJ2542】【PKUWC 2018】随机游走 min-max容斥 树上高斯消元

    题目描述 有一棵 \(n\) 个点的树.你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(q\) 次询问,每次询问给定一个集合 \(S\),求如果从 \(x\) 出发一 ...

  7. [PKUWC2018] 随机游走

    Description 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次询问给定一个集合 \(S\),求如果从 ...

  8. 【LOJ#2542】[PKUWC2018]随机游走(min-max容斥,动态规划)

    [LOJ#2542][PKUWC2018]随机游走(min-max容斥,动态规划) 题面 LOJ 题解 很明显,要求的东西可以很容易的进行\(min-max\)容斥,那么转为求集合的\(min\). ...

  9. LOJ #2542「PKUWC2018」随机游走

    $ Min$-$Max$容斥真好用 $ PKUWC$滚粗后这题一直在$ todolist$里 今天才补掉..还要更加努力啊.. LOJ #2542 题意:给一棵不超过$ 18$个节点的树,$ 5000 ...

  10. 「PKUWC2018」随机游走(min-max容斥+FWT)

    「PKUWC2018」随机游走(min-max容斥+FWT) 以后题目都换成这种「」形式啦,我觉得好看. 做过重返现世的应该看到就想到 \(min-max\) 容斥了吧. 没错,我是先学扩展形式再学特 ...

随机推荐

  1. Project Euler 307 题解

    主要是规避误差.即求 \[\frac{k![x^k](1+x+\frac {x^2}2)^n}{n^k} \] 微分一下得到递推式.然后根据斯特林近似(byd 这里还需要 \(1\) 后的第一项..) ...

  2. Python 潮流周刊#89:Python 3.14 的新型解释器!(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  3. 面试官:谈谈RabbitMQ的队头阻塞问题?

    RabbitMQ 延迟消息的队头阻塞问题是指,在使用死信队列(DLX)和 TTL(消息过期时间)实现延迟消息时,由于队列的先进先出(FIFO)特性,在队列头部消息未过期的情况下,即使后续消息已经过期也 ...

  4. WPF中实现PropertyGrid的三种方式

    原文地址: https://www.cnblogs.com/zhuqil/archive/2010/09/02/Wpf-PropertyGrid-Demo.html 第一种方式:使用WindowsFo ...

  5. C#如何MeasureString、Graphics获取字符串的像素长度

    1. 当单元格展示的字符串需要自动换行的时候,使用GDI绘制文本信息,需要计算字符串文本的实际高度信息(需要固定宽度) 方法一:代码如下,会出现文本没有挤满当前行,但是文本实际高度已换行. priva ...

  6. Tensorflow 安装和测试(Anaconda4.7.10+windows10)

    一. 软件下载 二. 配置相关 1. 修改 Jupyter notebook 默认工作路径 (1)打开 Anaconda Prompt ,输入 jupyter notebook --generate- ...

  7. js 字符串“http%3A%2F%2F”转换成http://详解

    字符串"http%3A%2F%2F"转换成http://详解 我截获下来一个URL的字符串格式是"http%3A%2F%2F",但是实际应该是http:// 而 ...

  8. thymeleaf的手动渲染HTML模板

    thymeleaf的手动渲染HTML模板 长河 2018-11-14 11:18:10  6833  收藏 2 分类专栏: Springboot 版权 现在很多公司都在thymeleaf作为前端的显示 ...

  9. MybatisPlus - [01] 概述

    MybatisPlus可以节省我们大量工作时间,所有的CURD代码它都可以自动化完成! 一.是什么   MyBatis-Plus(简称MP)是一个基于MyBatis的增强工具,其设计目的是在不改变My ...

  10. Spark1.6和2.0版本区别(一) 累加器

    1.6版本 2.0版本