document.write('
func1得到1与0的概率都为1/2。因此,可以调用两次func1,分别生成两个值a1与a2,用这两个数组成一个二进制a2a1,它的取值的可能性为00,01,10,11,并且得到每个值的概率都为(1/2)*(1/2)=1/4,因此,如果得到的结果为00,那么返回0(概率为1/4),其他情况返回1(概率为3/4)。实现代码如下:
    import random
    #返回0和1的概率都为1/2
    def func1():
    return int(round(random.random())
    #返回0的概率为1/4, 返回1的概率为3/4
    def func2():
    a1=func1()
    a2=func1()
    tmp=a1
    tmp1=(a2<<1)
    if tmp==0:
    return 0
    else:
    return 1
    if __name__=="__main__":
    i=0
    while i<16:
    print func2(),
    i+=1
    print\'\\n\'
    i=0
    while i<16:
    print func2(),
    i+=1
    程序的运行结果为:
    1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1
    1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0

    由于结果是随机的,调用的次数越大,返回的结果就越接近1/4与3/4。 

');