本文实例为大家分享了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