python实现随机漫步算法

yipeiwu_com6年前Python基础

本文实例为大家分享了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 numpy数组中冒号的使用方法详解

对python numpy数组中冒号的使用方法详解

python中冒号实际上有两个意思:1.默认全部选择;2. 指定范围。 下面看例子 定义数组 X=array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[1...

python实现批量解析邮件并下载附件

python中的email模块可以方便的解析邮件,先上代码 #-*- encoding: gb2312 -*- import os import email def mail_to...

Python中使用item()方法遍历字典的例子

Python中使用item()方法遍历字典的例子

Python字典的遍历方法有好几种,其中一种是for...in,这个我就不说明,在Python了几乎随处都可见for...in。下面说的这种遍历方式是item()方法。 item() i...

python logging添加filter教程

例子一 def filter(self, record): """Our custom record filtering logic. Built-in filter...

Python实现的视频播放器功能完整示例

本文实例讲述了Python实现的视频播放器功能。分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python3 # --------------...