1.有乙個隨機數發生器,能以概率p生成0,以概率1-p生成1,問如何做乙個隨機數發生器
使得生成0和1的概率相等。
2.用上面那個生成0和1的概率相等的隨機數發生器,怎樣做乙個隨機數發生器使得它生成
的數在1…n之間均勻分布。
第一題比較簡單,可以用原發生器周期性地產生2個數,直到生成01或者10。
由於生成01和10的概率均為p(1-p),故預先任意指定01為0(或1),10為1(或0)即可。即可等概率的產生0和1,但然,要考慮其他組合的不可用性,獲取題目本身就隱含了這個bug或是缺陷吧。
[cpp]view plain
copy
print?
int rand()
第二題,需要一些思考……想到位運算,因為i個二進位制位隨機的選擇0或1,可以隨機的構成0~2^i的數,而這些數構成了所有的組合數。因此是等概率出現的。比如:2位二進位制位,這兩位可以隨機為0或1而互不影響,隨機的構成了00 01 10 11,它們代表了四個數,且這四個數是等概率的。
[cpp]view plain
copy
print?
int newrand()
if(result > n)
return newrand();
return result;
}
均勻分布對映到任意分布
當我們想對某些特定的分布進行抽樣時,由於電腦演算法只能產生服從於均勻分布的偽隨機數,我們可以通過對映的方式來獲取特定分布的抽樣。於是引出下面的問題 假設隨機變數 x sim u 0,1 對於已知對映 y g x 我們知道如何計算 y 的概率密度函式。但是,如果我們已知的是 y 的概率密度函式 d y...
均勻分布U a,b 均值和方差
驗證u a,b 的均值是 a b 2 2020 2 23 驗證u a,b 的均值是不是 a b 2 from random import uniform n int input please enter the number of test 試驗的次數 越多越趨於真實值 a float input ...
C C 中均勻分布和Possion
泊松分布適合於描述單位時間內隨機事件發生的次數的概率分布。如某一服務設施在一定時間內受到的服務請求的次數,交換機接到呼叫的次數 汽車站台的候客人數 機器出現的故障數 自然災害發生的次數 dna序列的變異數 放射性原子核的衰變量等等。泊松分布的概率質量函式為 在產生泊松分布時,首先需要產生均勻分布,下...