當前位置:編程學習大全網 - 編程語言 - 遊戲編程

遊戲編程

這篇文章略有不同。這裏我們將做壹道數學題。很多人可能自己解決或者在壹些論壇上找到答案。我相信這是我們很多人真正喜歡的問題。因為這個看似簡單而基本的問題背後有著深刻的數學哲學。

問題陳述

我們玩以下遊戲:

讓S = 0。從[0,1]的區間中均勻隨機選取壹個實數x。設s = s+x,如果S > 1,則停止,否則請轉到步驟2。

我想澄清壹下,上面第二步中的每個隨機選擇都是獨立的。

現在的問題是:

我們選擇的隨機數的期望個數是多少?換句話說,在流程終止之前,我們將執行步驟2的預期次數是多少?

我鼓勵所有讀者就此打住,花幾分鐘思考壹下如何解決上述問題。

壹個簡單的計算實驗

在深入研究這個問題的解決方案之前,我們可能會試圖了解答案是什麽樣的。因為所描述的過程非常簡單,所以我們可以很容易地對它進行編程。下面是解決這個問題的Python代碼:

import randomdef play game(n):count = 0 for I in range(n):S = 0.0 while S & lt;1: S = S + random.uniform(0,1)count = count+1 return(count/n)def main():n = 1000000 RES = PlayGame(n)print("預期數為"+str(RES))if _ _ name _ _ = " _ _ main _ _ ":main()

運行代碼,我得到了壹個答案:

解決這個問題

讓y代表我們在實現過程中必須做出的選擇的預期數量。y是具有整數值的隨機變量。根據預期的定義,我們有:

上式右邊有壹個方便的改寫方法,那就是:

我們現在註意我們得到的最後壹個雙和,並觀察它:

因此,我們得出結論:

換句話說,我們把原來的問題簡化成下面的問題。

從[0,1]區間隨機選取的k個獨立實數之和不大於1的概率是多少?

為了回答上述問題,我們定義了以下集合,它們被稱為(k-1)維單形:

我們還定義了壹個非常密切相關的集合,即:

為了理解為什麽上述集合是相關的,我們觀察如下。給定[0,1]區間內的k個隨機實數(實驗的每壹種可能結果),即每個實數k元組對應單位超立方體中的壹個點,即:

由於我們隨機均勻抽取數字,所以壹個事件的概率直接對應於超立方體中實現該事件的每個點的體積。因此,我們可以這樣寫:

因為vol(H)= 1。我們得出結論,剩下要計算的是集合q的體積,下面的結果是壹個眾所周知的定理。雖然它的證明很簡單,但為了使解釋不那麽復雜,我們跳過它。

當k = 2時,上述定理對應的是壹個紅色三角形的面積,它包含所有加起來不超過1的數對。很容易看出,三角形的面積是單位正方形的壹半,所以是1/2。將所有東西放在壹起,我們得到:

這對應於指數函數e x的泰勒展開式,取x = 1處的值。對於每個實數x:

代入x = 1,我們得到:

所以,我們原問題的答案是歐拉常數,e。

  • 上一篇:ai人工智能技術是如何被發現的?
  • 下一篇:江南大學哪些教授的課是必須要去蹭的?
  • copyright 2024編程學習大全網