【每天幾分鐘,從零入門python編程的世界!】
這節我們在2D平面內實現隨機遊走。我們先把原理搞清楚,用代碼實現這個原理。
原理分析:
我們想像在2D平面內有一個x軸和y軸組成的坐標系,有一個人他是個醉漢,他以(0,0)為原點,隨機遊走,以x和y表示遊走後的坐標值,剛開始x=0,y=0。他每走一步之前,都需要先做一次選擇,選擇往東南西北哪一個方向去走,這個選擇我們需要先引入一個random庫,這是一個可以用來實現隨機數、隨機選擇的庫,用這個庫來實現隨機方向的選擇。東西南北我們分別用E、W、S、N這四個字母表示。選擇的結果我們用step這個變量保存。做出選擇之後他就會按照選擇的方向走一步,根據地理上北下南左西右東的原則,往東走一步就是x+1,往西走一步就是x-1,往南走一步就是y-1,往北走一步就是y+1。假如說這個醉漢連續走n步然後停一下,我們把這個過程看做一次隨機遊走,用一個函數來表示為--random_walk(n)。
這個表示隨機遊走的函數的代碼如下:
說明:choice()函數是random庫自帶的函數,它的參數是一個列表,這個函數的作用是從列表中進行選擇元素。
假設現在我們模擬這個醉漢完成10次隨機遊走,然後計算他最終的位置到原點的距離。應該怎麼做呢?
我們可以用勾股定理,因為原點是(0,0),所以最終的位置到原點的距離就是x的平方加y的平方開根號。
在這裡我們先不開根號,暫時就用x的平方加y的平方的結果,可以大概估算隨機遊走後的最終位置到原點的距離。
現在我們模擬這樣一個過程:就是假設這個醉漢連續走50步,算作完成一次隨機遊走,我們讓他做30次隨機遊走,每完成一次遊走看看他到原點的距離是多少,如果大於100,就輸出"It's too far away from home,I'm taking a taxi",如果小於100,就輸出"I'm walking home. "
代碼如下:
運行結果:
以上就是在Python中用代碼實現醉漢隨機遊走的過程。關於過程和原理,代碼中有注釋,很容易理解。
我是時問新,歡迎關注我。跟我一起從零開始學習Python,每天花一點時間,開啟python編程新世界的大門,領略新的風光,讓人生多一種可能!