sixabs
摘要
隨機遊走是隨機過程裡面的經典例子,今天在學習python基礎的時候看到這麼個例子,覺得很直觀形象,挺有意思。當然,看這個例子並不是本意,寫這篇文章其實是先借助這麼個例子,首先學習一下python的資料視覺化的基礎知識,其次是規範一下自己寫部落格的格式。
這一部分正在趕來ing…
2.1 編寫隨機遊走主類
編寫乙個隨機遊走的randomwalk()類。首先在建構函式中初始化行走步數和初始化位置;然後定義行走方法fill_walk(),每走一步橫縱座標都產生隨機的正負方向和在x,y軸的行走距離,如果x,y方向都為0,則重新產生。random_walk.py**如下:
# 建立隨機遊走類
from random import choice
class
randomwalk()
:"""乙個生成隨機漫步的屬性"""
def__init__
(self, num_points=
100000):
"""初始化隨機漫步屬性"""
self.num_points = num_points
# 所有隨機漫步都始於(0, 0)
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
])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
# 拒絕原地踏步
if x_step ==
0and y_step ==0:
continue
# 計算下乙個點的x,y值
next_x = self.x_values[-1
]+ x_step
next_y = self.y_values[-1
]+ y_step
2.2 編寫測試類
直接放**rw_visual.py如下:
# 隨機遊走類測試
import matplotlib.pyplot as plt
from random_walk import randomwalk
# 只要程式處於活動狀態,就不斷地模擬隨機漫步
while
true
:# 建立乙個randomwalk例項,並將其包含的點都繪製出來
rw = randomwalk(
) rw.fill_walk(
) point_numbers =
list
(range
(rw.num_points)
) plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.blues, edgecolors=
'none'
, s=1)
# 畫出起點和終點
plt.scatter(0,
0, c=
'green'
, edgecolors=
'none'
, s=
100)
plt.scatter(rw.x_values[-1
], rw.y_values[-1
], c=
'red'
, edgecolors=
'none'
, s=
100)
# 設定圖表標題,並給座標軸加上標籤
plt.title(
"2維隨機遊走實驗"
, fontsize=18)
plt.xlabel(
"橫座標"
, fontsize=14)
plt.ylabel(
"縱座標"
, fontsize=14)
# 顯示圖形
plt.show(
) keep_running =
input
("make another walk?(y/n): "
)if keep_running ==
'n':
break
2.3 效果圖
python程式設計從入門到實踐中的外星人遊戲
在程式設計到外星人左右移動並下移的時候,外星人無法左右移動導致下移的速度過快。所以返回去排查外星人設定的左右設定引數,引數無誤。再次執行程式發現可能是因為外星人程式部分,檢測外星人左右是否碰撞到螢幕左右邊緣的檢測程式在呼叫的時候錯誤,導致環節出錯。所以在程式可以執行,不保證程式是正確的,比如說whi...
Python 程式設計 從入門到實踐
1.官網安裝 3.環境配置 務必選中核取方塊add python to path 4.檢視 啟動python版本的命令 python 執行 print hello python world 5.終端執行x.py檔案 python x.py 7.檢視當前目錄中的所有檔案的命令 dir windows系...
Python程式設計從入門到實踐 基礎入門
python程式設計從入門到實踐 基礎入門 1 python中的變數 2 python首字母大寫使用title 方法,全部大寫upper 方法,全部小寫lower 方法 3 python中字串拼接使用 號 4 python中刪除字串的空格 刪除末尾空格的rstrip 刪除開頭空格的lstrip 刪除...