##概率题 ###题目 已知随机函数old_rand(),以p的概率产生0,以1-p的概率产生1,要求设计一个新的随机函数newRand(),使其以等概率生成1和0。
###解答
def new_rand():
first = old_rand()
second = old_rand()
if first == 0 and second == 1
return 0
if first == 1 and second == 0
return 1
else return new_rand()
###分析 返回0的概率不是简单的从第一个if中得出p(1-p),第三步也会有概率返回0
设t = p(1-p)
返回0的概率: t + (1-2t)*t + (1-2t)^2 *t + (1-2t)^3 *t + … + (1-2t)^n *t + … ~~~ t/(1-1+2t) = 1/2
同理得出返回1的概率:1/2