5.1-2 生成Random(a,b)php
運行b-a次Random(0,1),累加和,最後再加a。利用公式F(z) = w解出z便可,其中F(z)爲目標分佈,w爲區間0-1內的均勻分佈。dom
5.1-3 等機率生成0和1ui
Biased-Random 以機率p輸出1,以機率1-p輸出0,blog
則1-Biased-Random 以機率p輸出0,以機率1-p輸出1sed
則調用Biased-Random後接着調用1-Biased-Random,出現的機率爲im
調用結果 00 01 10 11統計
出現機率 (1-p)*p (1-p)*(1-p) p*p p*(1-p)img
則1出現的指望E[1] = (1-p)*(1-p) + p*p + 2*p*(1-p) = 1;co
0出現的指望E[0] = 2(1-p)*p + (1-p)*(1-p) + p*p = 1;生成
故調用一次(Biased-Random) + (1-Biased-Random)就能夠讓0和1出現的機率相等。連續調用這個組合,統計0和1出現的個數,直到它們出現的個數不相等。此時輸出出現次數多的那個。每次調用產生0和1個個數相等的機率爲1-2*p*(1-p)。伯努利實驗指望爲O(1/(1-2*p*(1-p)))
網上還有另一種解法:運行Biased-Random兩次產生x和y,連續運行直到兩個數不等,而後輸出x。顯然,產生0的機率爲(1-p)*p,產生1的機率爲p*(1-p),兩者產生機率相等。每次產生兩個不等的數,說明實驗成功,故是一個2*p*(1-p)機率的伯努利實驗,指望爲O(1/2*p*(1-p))。
但因爲2*p*(1-p)<1/2,因此後者的指望大,故後者用的次數更少。
5.3-5 Random(1,n^3)全部元素都惟一的機率至少爲1-1/n
參見http://photo.blog.sina.com.cn/list/blogpic.php?pid=932e6e55hc37388f5a11d&bid=932e6e5501015a80&uid=2469293653
5.1 機率計數
(a)令Vn表示n次自增操做後的值,令Xi表示i次自增操做後自增後和自增前數值的差,則有Vn = X1 + X2 + ... + Xn。
而E[Xi] = 0*(1-1/(n(i+1)-n(i))) + (n(i+1)-n(i))*(1/(n(i+1)-n(i))) = 1。得E[Vn] = n。
(b)n(i) = 100i,則n(i+1)-n(i) = 100;機率爲1/100 。
則Var[Xi] = E[Xi^2] - E[Xi]^2 = (0^2*99/100) + (100^2) *1/100 - 1^2 = 99。
故Var[Vn] = 99n;