The Nature of Code閱讀心得與Python實作:0.1 Random Walks

更新於 發佈於 閱讀時間約 1 分鐘

標題中的random walk,中文通常翻譯成「隨機漫步」。既然有random這個字,可想而知,就會牽涉到亂數,而一看到亂數這兩個字,就知道免不了要拿個銅板丟一丟。不過,丟銅板跟走路要怎麼結合成「隨機漫步」呢?方法其實挺簡單的,先從最簡單的一維空間做起,再推展到二維空間。

一維空間指的是單一的直線,所以就只能向前走或向後走。銅板有正反兩面,那就規定正面代表向前走一步,反面代表向後走一步。既然每次丟銅板得到的正、反面結果是隨機的,根據這隨機的結果來向前走或向後走,當然就是隨機漫步了。

挺簡單的,不是嗎?一維隨機漫步的演算法就是這麼簡單。不過我們應該自問一下,有沒有什麼地方考慮得不完整的?我們規定正面向前走,反面向後走,那如果倒過來,規定正面向後走,反面向前走,這樣還是隨機漫步嗎?

很顯然的,既然丟銅板的結果是隨機的,那不管正、反面的走法怎麼規定,只要自始至終從一而終的按照規定走,最後就會是隨機漫步。這個結論在接下來的二維隨機漫步中,一樣會成立。

現在就來看看二維的隨機漫步要怎麼做。

二維空間是個平面,除了向前、向後走之外,還可以向左、向右走,所以總共會有四個方向可以走。丟銅板時,如果每丟兩次一組,那剛好會有正正、正反、反正、反反這四種排列組合。所以,如果規定一種組合對應一個方向,就可以隨機漫步了。

當然啦,就如同在一維隨機漫步中得到的結論一樣,正、反組合和行走方向間的對應關係,並不會影響最後的結果,只要從一而終,最後就是會隨機漫步。

除了一個銅板每丟兩次一組的做法外,也可以一次丟兩個銅板,結果同樣會有四種排列組合。至於要用一個或兩個銅板來做,就青菜蘿蔔各有所好,但憑個人喜好!

隨機漫步看似簡單,但卻是模擬許多自然界現象的基礎,相關的觀念及程式實作方式,對於瞭解這本書中會一再用到的亂數、機率、Perlin noise等工具,會有相當大的幫助。

留言
avatar-img
留言分享你的想法!
avatar-img
ysf的沙龍
19會員
155內容數
寫點東西自娛娛人
ysf的沙龍的其他內容
2024/06/13
這一節的標題是A Smoother Approach with Perlin Noise,介紹由Ken Perlin所開發的Perlin noise,及其應用方式。
Thumbnail
2024/06/13
這一節的標題是A Smoother Approach with Perlin Noise,介紹由Ken Perlin所開發的Perlin noise,及其應用方式。
Thumbnail
2024/06/09
這一節介紹使用accept-reject algorithm來產生符合特定機率分布的亂數,使得random walker具備Lévy flight的能力。
Thumbnail
2024/06/09
這一節介紹使用accept-reject algorithm來產生符合特定機率分布的亂數,使得random walker具備Lévy flight的能力。
Thumbnail
2024/06/05
這一節的標題是0.4 A Normal Distribution of Random Numbers,介紹常態分布的基本概念,以及相關亂數產生器的使用方法與應用方式。
Thumbnail
2024/06/05
這一節的標題是0.4 A Normal Distribution of Random Numbers,介紹常態分布的基本概念,以及相關亂數產生器的使用方法與應用方式。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
模擬世界是我們寫程式造出來的,我們就是模擬世界的主宰,所以各種作用力要長什麼樣子、要怎麼個作用法,都由我們決定。不過,如果希望這些作用力看起來像真實世界的作用力一樣,那在寫程式的時候,套用這些作用力在真實世界中的物理公式,會是比較省時省力的做法。
Thumbnail
模擬世界是我們寫程式造出來的,我們就是模擬世界的主宰,所以各種作用力要長什麼樣子、要怎麼個作用法,都由我們決定。不過,如果希望這些作用力看起來像真實世界的作用力一樣,那在寫程式的時候,套用這些作用力在真實世界中的物理公式,會是比較省時省力的做法。
Thumbnail
這一節談的是向量的定義,以及如何運用向量來建立模擬物體運動時,關於位置和速度間的關係式。
Thumbnail
這一節談的是向量的定義,以及如何運用向量來建立模擬物體運動時,關於位置和速度間的關係式。
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 四 牛頓的「流數」不久便淡出歷史的舞台,後來的數學工作者選擇了萊布尼茲比較抽象的「函數」。 公元1673年,萊布尼茲在一篇名為〈觸線
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 四 牛頓的「流數」不久便淡出歷史的舞台,後來的數學工作者選擇了萊布尼茲比較抽象的「函數」。 公元1673年,萊布尼茲在一篇名為〈觸線
Thumbnail
直觀理解 導數:考慮的是單一變數的函數,描述的是函數在某點的斜率或變化率。 偏導數:考慮的是多變數函數,描述的是函數在某個變數變化時的變化率,其他變數保持不變。  (針對各維度的調整 或者稱變化 你要調多少) 應用 導數:在物理學中應用廣泛,例如描述速度和加速度。 偏導數:在多變量分析、優
Thumbnail
直觀理解 導數:考慮的是單一變數的函數,描述的是函數在某點的斜率或變化率。 偏導數:考慮的是多變數函數,描述的是函數在某個變數變化時的變化率,其他變數保持不變。  (針對各維度的調整 或者稱變化 你要調多少) 應用 導數:在物理學中應用廣泛,例如描述速度和加速度。 偏導數:在多變量分析、優
Thumbnail
邏輯是我們思考的基礎,影響著我們如何看待世界和進行推論。透過假設前提和推論,我們可以從邏輯的角度來思考生活中的各種情況和決策。深入瞭解邏輯可以幫助我們更清晰地思考,理解事物之間的關聯。
Thumbnail
邏輯是我們思考的基礎,影響著我們如何看待世界和進行推論。透過假設前提和推論,我們可以從邏輯的角度來思考生活中的各種情況和決策。深入瞭解邏輯可以幫助我們更清晰地思考,理解事物之間的關聯。
Thumbnail
上篇進一步認識基本的圖形架構與三大 Graph 算法,那首先從 shortest path 開始,我們會陸續去理解這些算法,以及可能的應用,如果還沒有看過上一篇的,可以點以下連結~那我們就開始吧! 【圖論Graph】Part1:初探圖形與圖形演算法之應用
Thumbnail
上篇進一步認識基本的圖形架構與三大 Graph 算法,那首先從 shortest path 開始,我們會陸續去理解這些算法,以及可能的應用,如果還沒有看過上一篇的,可以點以下連結~那我們就開始吧! 【圖論Graph】Part1:初探圖形與圖形演算法之應用
Thumbnail
曾經對一個數學不好,但是喜歡玩電玩的親友小孩說,你現在討厭的正數,負數的代數計算,就是電玩裡頭的人物,可以左右上下移動,發射子彈,跳躍的基礎。 我舉微軟c語言寫遊戲的例子,(+,0)是向右,(-,0)是向左,(0,+)是向上,(0,-)是向下,(0,+)是向上,而跳躍旋轉則是三角函
Thumbnail
曾經對一個數學不好,但是喜歡玩電玩的親友小孩說,你現在討厭的正數,負數的代數計算,就是電玩裡頭的人物,可以左右上下移動,發射子彈,跳躍的基礎。 我舉微軟c語言寫遊戲的例子,(+,0)是向右,(-,0)是向左,(0,+)是向上,(0,-)是向下,(0,+)是向上,而跳躍旋轉則是三角函
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News