Python實(shí)現(xiàn)隨機(jī)漫步功能
隨機(jī)漫步生成是無規(guī)則的,是系統(tǒng)自行選擇的結(jié)果。根據(jù)設(shè)定的規(guī)則自定生成,上下左右的方位,每次所經(jīng)過的方向路徑。
首先,創(chuàng)建一個(gè)RandomWalk()類和fill_walk()函數(shù)
random_walk.py
from random import choice class Randomwalk (): '''一個(gè)生成隨機(jī)數(shù)漫步的類''' def __init__(self,num_point=5000): '''初始化隨機(jī)漫步的屬性''' self.num_point = num_point #所有隨機(jī)漫步的開始都是坐標(biāo)[0,0] self.x_lab = [0] self.y_lab = [0] def fill_walk(self): '''計(jì)算隨機(jī)漫步的所有點(diǎn)''' while len(self.x_lab) < self.num_point: #決定前進(jìn)方向以及前進(jìn)的距離 x_direction = choice([1,-1]) x_distance = choice([0,1,2,3,4]) x_step = x_direction * x_distance y_direction = choice([1,-1]) y_distance = choice([0,1,2,3,4]) y_step = y_direction * y_distance #拒絕原地不動(dòng) if x_step == 0 and y_step == 0: continue #計(jì)算下一個(gè)點(diǎn)X和Y的值 next_x = self.x_lab[-1] + x_step next_y = self.y_lab[-1] + y_step self.x_lab.append(next_x) self.y_lab.append(next_y)
2、繪制隨機(jī)漫步圖
rw_visual.py
import matplotlib.pyplot as plt from random_walk import Randomwalk from random import choice rw = Randomwalk() rw.fill_walk() plt.scatter(rw.x_lab,rw.y_lab,s=15) plt.show()
3、生成效果圖片
4、修改代碼-->隱藏邊框
rw_visual.py
import matplotlib.pyplot as plt from random_walk import Randomwalk from random import choice while True: rw = Randomwalk() rw.fill_walk() #設(shè)置繪畫窗口大小 plt.figure(dpi=128,figsize=(10,6)) point_numbers = list(range(rw.num_point)) #突出起點(diǎn)(0,0)和終點(diǎn) plt.scatter(0,0,c='green',edgecolors='none',s=100) plt.scatter(rw.x_lab[-1],rw.y_lab[-1],c='red',edgecolors='none',s=100) #隱藏坐標(biāo)軸 plt.axes().get_xaxis().set_visible(False) plt.axes().get_yaxis().set_visible(False) plt.scatter(rw.x_lab,rw.y_lab,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=15) plt.show() keep_running = input("Make another walk?(y/n): ") keep_running = keep_running.lower() if keep_running == 'n': break
5、展示效果
總結(jié)
以上所述是小編給大家介紹的Python實(shí)現(xiàn)隨機(jī)漫步功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Python的Django應(yīng)用程序解決AJAX跨域訪問問題的方法
針對(duì)Django中在編寫供AJAX調(diào)用的API時(shí)碰到的跨域問題,我們來總結(jié)下Python的Django應(yīng)用程序解決AJAX跨域訪問問題的方法,其中使用GitHub上開源分享的django-cors-headers尤其推薦2016-05-05Python實(shí)現(xiàn)實(shí)時(shí)增量數(shù)據(jù)加載工具的解決方案
這篇文章主要分享結(jié)合單例模式實(shí)際應(yīng)用案例:實(shí)現(xiàn)實(shí)時(shí)增量數(shù)據(jù)加載工具的解決方案。最關(guān)鍵的是實(shí)現(xiàn)一個(gè)可進(jìn)行添加、修改、刪除等操作的增量ID記錄表。需要的可以參考一下2022-02-02PyQt5實(shí)現(xiàn)用戶登錄GUI界面及登錄后跳轉(zhuǎn)
PyQt5是強(qiáng)大的GUI工具之一,通過其可以實(shí)現(xiàn)優(yōu)秀的桌面應(yīng)用程序。本文主要介紹了PyQt5實(shí)現(xiàn)用戶登錄GUI界面及登錄后跳轉(zhuǎn),具有一定的參考價(jià)值,感興趣的可以了解一下2021-11-11Python提取PDF發(fā)票信息保存Excel文件并制作EXE程序的全過程
之前零散的用過一點(diǎn)python做數(shù)據(jù)處理,這次又遇到一個(gè)數(shù)據(jù)處理的小功能,下面這篇文章主要給大家介紹了關(guān)于Python提取PDF發(fā)票信息保存Excel文件并制作EXE程序的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11淺談python 線程池threadpool之實(shí)現(xiàn)
這篇文章主要介紹了淺談python 線程池threadpool之實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11