215

问答题 215 /376

手撕代码:以概率p生成1、概率1-p生成0的rand函数,得到0-1等概率的rand函数,计算新的rand函数中:调用一次,while循环的期望次数

参考答案

参考回答:

function g(x)

{

int v = f(x) + f(x)>0?0:1;

if(v==0)

{

return 0;  //1.f(x),f'(x)同时为0

}

else if(v==2)

{

return 1;  //2.f(x),f'(x)同时为1

}

else

{

g(x);  //3.f(x),f'(x)一个为0一个为1,重新生成随机数

}

}

新的rand函数中:调用一次,while循环的期望次数是2。