python基础-模仿醉汉在二维空间上的随机漫步
内容:
模仿醉汉在二维空间上的随机漫步:一个醉汉喝醉酒,每次只能走一步,每步分别沿着x,y轴走一个单位长度,试着画出醉汉的轨迹。
方法一:沿任意方向移动
思路:醉汉可以往任意方向走一步,则移动的角度可以为360中的任意数,将角度转化为弧度制则可以计算得到移动的坐标信息,起始的坐标为(0,0),每一次的移动则为当前的位置坐标加上移动的坐标,更新当前的坐标,存储每一次移动后的坐标即可得到相应的路线图。
代码
# -*- coding=utf-8 -*-
# name: nan chen
# date: 2021/3/11 16:00
import matplotlib.pyplot as plt
import numpy as np
import math# 目前的位置
cur = [0, 0]
# 总步数
allstep = 1000
# 用于存储移动后的每一次位置
movex, movey = [0], [0]
while (allstep > 0):angle = np.random.randint(360)# 将随机角度转化为对应的弧度制index = np.deg2rad(angle)# 随机移动的x轴与y轴坐标x = math.cos(index)y = math.sin(index)# 移动当前位置cur[0] = cur[0] + xcur[1] = cur[1] + y# 保存目前的位置信息,方便绘制图像movex.append(cur[0])movey.append(cur[1])allstep -= 1plt.title('walk')
# 初始点
plt.scatter(0, 0, c='r')
plt.plot(movex, movey)
# 结束点
plt.scatter(cur[0], cur[1], c='gold')
plt.show()
运行结果
方法二:沿坐标轴随机移动
思路:醉汉可以往x y方向走一步,则移动的坐标可以为[-1,0,1]三个数中任意两个数的组合。起始的坐标为(0,0),每一次的移动则为当前的位置坐标加上移动的坐标,存储每一次移动后的坐标,并更新当前的坐标。走完后,根据存储的坐标绘制路线图。
代码:
allmove = [cur]
allstep = 1000
while (allstep > 0):# 随机选取[-1 0 1]中的两个点作为移动位置indexs = np.random.randint(-1, 2, 2);move = []for index in indexs:move.append(index)move1 = np.array(move)# 更改当前位置cur = cur + move1allmove.append(cur)allstep -= 1
movex = []
movey = []
for move in allmove:movex.append(move[0])movey.append(move[1])
plt.title('walk')
plt.scatter(0, 0, c='r')
plt.plot(movex, movey)
plt.scatter(cur[0], cur[1], c='gold')
plt.show()
运行结果
python基础-模仿醉汉在二维空间上的随机漫步相关推荐
- python基础教程--代码集合(上)
文章目录 1.转义字符与原字符 2.二进制与字符编码 3.二进制编码 4.变量定义 4.数据类型 5.浮点数类型 6.布尔类型 7.字符串类型 8.数据类型转换 9.注释功能 10.标识符和保留字 1 ...
- python入门之函数调用第二关_猪行天下之Python基础——5.1 函数(上)
内容简述: 1.函数定义 2.形参与实参 3.关键字参数与默认参数 4.可变参数 5.全局变量与局部变量 6.内部函数 7.闭包 8.lambda表达式 9.递归 1.函数定义 我们可以将一些实现特定 ...
- 随机漫步问题(醉汉行走)
模仿醉汉在二维空间上的随机漫步:一个醉汉喝醉酒,每次只能走一步,每步分别沿着x,y轴走一个单位长度,试着画出醉汉的轨迹. import matplotlib.pyplot as plt import ...
- Python量化交易基础讲堂-可视化随机漫步轨迹
在< Python实战-构建基于股票的量化交易系统 >小册子的<前置基础:由例程快速入门常用数据分析工具>小节我们用到了一副插图: 这里我们结合小册中Numpy.Matplot ...
- 零基础学python免费网课-零基础学Python量化投资,超值线上课程反复回看
原标题:零基础学Python量化投资,超值线上课程反复回看 超值网络课程 量化投资是一种严谨.系统化的投资方式,相比起传统投资,量化投资风险低回报高,但是它要求投资者使用数据处理分析.计算机编程技术. ...
- Python基础教程书籍案例:新闻采集(新闻聚合)【上】
这个练习项目来自<Python基础教程(第2版)>,案例原名为"新闻聚合". 项目分为两个阶段: 第一阶段:通过与NNTP服务器进行交互获取新闻源. 第二阶段:获取不同 ...
- Python基础学习备忘录上
Python基础学习 备忘录上 Python语法 1.1 输出 1.1.1 输出换行的更改 1.1.2 输出整型 1.1.3 输出字符串 1.1.4 字符串拼接与多行输出 1.1.5 输入输出类型转换 ...
- Python基础入门----基本数据类型上
Python基础入门篇 粉丝问题整理 前两节我们安装了Python3.7.0和Pycharm(代码编译器),本节我们从Python基本数据类型开始分享,不知道朋友们是否明白上两节的分享?如果没有请直接 ...
- python线上课程-零基础学Python量化投资,超值线上课程反复回看
原标题:零基础学Python量化投资,超值线上课程反复回看 超值网络课程 量化投资是一种严谨.系统化的投资方式,相比起传统投资,量化投资风险低回报高,但是它要求投资者使用数据处理分析.计算机编程技术. ...
最新文章
- Spring 教程(三) 环境设置
- 20155213 2016-2017-2 《Java程序设计》第七周学习总结
- 离职那天!同龄的CTO悄悄私信我,他的年薪是我的10倍
- 小程序获取form_id 与 小程序获取openid
- Boost.Flyweight 键值测试的类
- 适用于无服务器Java开发人员的AWS Lambda:它为您带来了什么?
- Oracle Service Bus简介
- js 在html中新建个节点,javascript节点是什么?
- 拓端tecdat|R语言分位数回归Quantile Regression分析租房价格
- Java编写五线谱上的音符_新手读懂五线谱
- html注册页面教程视频,新手建站HTML 学习系列视频教程之HTML 简介
- 微信公众平台与微信公众平台的区别与联系
- 2019 ICPC 南京区域赛 - H Prince and Princess(博弈+思维)
- 三十分钟理解:稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB
- PC端如何使用ITunes无线连接ios手机
- 低多边形,通过PS制作低多边形图形
- 基于Arduino的智能泡茶机(1)——机械系机械创新比赛总结技术点与不足处
- ch341a i2c 安卓_CH341A安卓平板OTG连接成功但读取不到数据
- element-ui中的多层表单循环验证处理
- 一位特殊的中国特斯拉车主,让马斯克感动了
热门文章
- gprmax构造多层均质土壤模型
- ac6005直连ap 如何配置_WLAN1:AC6005组网配置实验
- 暴风集团入多个被执行人名单-千氪
- mysql 存储过程中 if else的使用 和赋值方式
- 中专计算机与外设维修,《计算机维护与维的修》级计算机及外设维修三中专教学大纲.doc...
- 数理统计10.15 | 幂律分布
- Python 中的列表(二)
- 二维等离子体输运与反应动力学求解器PASSKEy中BOLSIG文件获取过程(附视频链接)
- 异物堆积,导致手机Type-C接口充电不畅、无法充电的问题
- 攻防世界Misc-来自银河的信号