平均要取多少個 0,1 中的隨機數才能讓和超過1

2021-06-10 04:42:41 字數 907 閱讀 5279

數學常數最令人著迷的就是,它們常常出現在一些看似與之毫不相干的場合中。 隨便取乙個 0 到 1 之間的數,再加上另乙個 0 到 1 之間的隨機數,然後再加上乙個 0 到 1 之間的隨機數⋯⋯直到和超過 1 為止。乙個有趣的問題:平均需要加多少次,才能讓和超過 1 呢?答案是 e 次。

為了證明這一點,讓我們先來看乙個更簡單的問題:任取兩個 0 到 1 之間的實數,它們的和小於 1 的概率有多大?容易想到,滿足 x+y<1 的點 (x, y) 佔據了正方形 (0, 1)×(0, 1) 的一半面積,因此這兩個實數之和小於 1 的概率就是 1/2 。類似地,三個數之和小於 1 的概率則是 1/6 ,它是平面 x+y+z=1 在單位立方體中截得的乙個三稜錐。這個 1/6 可以利用截面與底面的相似比關係,通過簡單的積分求得:

可以想到,四個 0 到 1 之間的隨機數之和小於 1 的概率就等於四維立方體一角的「體積」,它的「底面」是乙個體積為 1/6 的三維體,在第四維上對其進行積分便可得到其「體積」

∫(0..1) (x^3)*1/6 dx = 1/24

依此類推, n 個隨機數之和不超過 1 的概率就是 1/n! ,反過來 n 個數之和大於 1 的概率就是 1 - 1/n! ,因此加到第 n 個數才剛好超過 1 的概率就是

(1 - 1/n!) - (1 - 1/(n-1)!) = (n-1)/n!

因此,要想讓和超過 1 ,需要累加的期望次數為

∑(n=2..∞) n * (n-1)/n! = ∑(n=1..∞) n/n! = e

平均要取多少個 0,1 中的隨機數才能讓和超過1

分類 資料結構與演算法設計 2013 09 21 22 40 86人閱讀收藏 舉報隨機數問題 題目 平均要取多少個 0,1 中的隨機數才能讓和超過1 答案為e次!分析 為了證明這一點,讓我們先來看乙個更簡單的問題 任取兩個 0 到 1 之間的實數,它們的和小於 1 的概率有多大?容易想到,滿足 x ...

在給定範圍中取不重複的隨機數

在給定範圍中取不重複的隨機數 隨機取m 個數 在1到 n的範圍之內 m n 要求m 個數沒有重複。有沒有什麼好的演算法,時間複雜度和空間複雜度都很好?方法一 用 stl中的 set集,紅黑樹來處理 取隨機數可以用c 標準的rand 至於m 個不重複,用 std set 來解決,把取 到的隨機數插入到...

在給定範圍中取不重複的隨機數

在給定範圍中取不重複的隨機數 隨機取m個數 在1到n的範圍之內 m n 要求m個數沒有重複。有沒有什麼好的演算法,時間複雜度和空間複雜度都很好?方法一 用stl中的set集,紅黑樹來處理 取隨機數可以用c 標準的rand,至於m個不重複,用std set來解決,把取到的隨機數插入到set裡面,通過s...