python实现随机漫步算法


Posted in Python onAugust 27, 2018

本文实例为大家分享了python实现随机漫步的具体代码,供大家参考,具体内容如下

编写randomwalk类

from random import choice

class randomwalk():

  def __init__(self,num_points=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:
      x_direction=choice([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,5])
      y_step=y_direction*y_distance

      if x_step==0 and y_step==0:
        continue

      self.x_values.append(self.x_values[-1]+x_step)
      self.y_values.append(self.y_values[-1]+y_step)

choice([1,-1])*步数巧妙的完成了随机方向,x轴随机加y轴随机使得4个方向的随机漫步得以完成

显示随机漫步点

import matplotlib.pyplot as plt
from random_walk import randomwalk


while True:
  rw=randomwalk()
  rw.fill_walk()
  plt.figure(figsize=(15,8))
  point_numbers=list(range(rw.num_points))

  plt.scatter(rw.x_values,rw.y_values,s=1,c=point_numbers,
  edgecolor='none',cmap=plt.cm.Blues)

  plt.scatter(rw.x_values[0],rw.y_values[0],s=50,edgecolor='none',
  c='green')

  plt.scatter(rw.x_values[-1],rw.y_values[-1],s=50,edgecolor='none',
  c='green')

  plt.show()

  a=input("do you want to walk again?(y/n)")
  if a=='n':
    break

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的变量和作用域详解
Jul 13 Python
Python 查看文件的读写权限方法
Jan 23 Python
Python KMeans聚类问题分析
Feb 23 Python
基于Python pip用国内镜像下载的方法
Jun 12 Python
通过python顺序修改文件名字的方法
Jul 11 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 Python
python语音识别实践之百度语音API
Aug 30 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
Python socket聊天脚本代码实例
Jan 02 Python
python清空命令行方式
Jan 13 Python
python集合能干吗
Jul 19 Python
Python常用模块函数代码汇总解析
Aug 31 Python
Python3随机漫步生成数据并绘制
Aug 27 #Python
python如何生成各种随机分布图
Aug 27 #Python
python随机数分布random测试
Aug 27 #Python
pycharm安装和首次使用教程
Aug 27 #Python
Windows下PyCharm安装图文教程
Aug 27 #Python
python 3.7.0 安装配置方法图文教程
Aug 27 #Python
python 3.7.0 下pillow安装方法
Aug 27 #Python
You might like
eAccelerator的安装与使用详解
2013/06/13 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
2013/04/01 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
jQuery动态添加
2016/04/07 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
在vue中读取本地Json文件的方法
2018/09/06 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
大二自我鉴定范文
2013/10/05 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
经典安踏广告词
2014/03/21 职场文书
保密协议书范本
2014/04/22 职场文书
客户付款通知书
2015/04/23 职场文书
python中print格式化输出的问题
2021/04/16 Python
Window server中安装Redis的超详细教程
2021/11/17 Redis
mysql全面解析json/数组
2022/07/07 MySQL