概率p輸出1,概率1-p輸出0,等概率輸出0和1
阿新 • • 發佈:2019-02-09
有個輸出0和1的BIASED RANDOM,它以概率p輸出1,以概率1-p輸出0,以此RANDOM函式為基礎,生成另一個RANDOM函式,該函式以1/2的概率輸出1,以1/2的概率輸出0
題目解答:
兩次呼叫該RANDOM函式,如果其概率為P(x),呼叫2次
P(1) = p P(0) = 1-p
P'(1) =p P'(0) = 1-p
概率如下:
11 p*p 10 p*(1-p)
01 (1-p)*p 00 (1-p)*(1-p)
- int random_0_1()
- {
- int i = RANDOM();
-
int j = RANDOM();
- int result;
- while (true)
- {
- if (i == 0 && j == 1)
- {
- result = 0;
- break;
- }
- elseif (i == 1 && j == 0)
- {
- result = 1;
- break;
- }
- else
-
continue
- }
- return result;
- }
題目還可以引申:以1/N的概率返回1~N之間的數
等概率都出來了,random(1, N)還遠嗎?滅哈哈哈~~~