本文实例为大家分享了python实现随机漫步的具体代码,供大家参考,具体内容如下
编写randomwalk类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
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个方向的随机漫步得以完成
显示随机漫步点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/Joliph/article/details/76615600