有個輸出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 result;
while (true)
{
int i = RANDOM();
int j = RANDOM();
if (i == 0 && j == 1)
{
result = 0;
break;
}
else if (i == 1 && j == 0)
{
result = 1;
break;
}
else
continue;
}
return result;
}