其他分享
首页 > 其他分享> > [面试题] 等概率生成器

[面试题] 等概率生成器

作者:互联网

题目:已知一随机发生器,产生0的概率是p,产生1的概率是1-p,现在要你构造一个发生器,使得它构造0和1的概率均为1/2;
代码:
import random p = 200 def generate(p): n = random.randrange(0, 1000) res = 0 if n > p: return 0 else: return 1 def generate_01(): # 生成 0 和 1 等概率 n1 = generate(p) n2 = generate(p) if (n1 == 0 and n2 == 1): return 1 if (n1 == 1 and n2 == 0): return 0 return generate_01() l1 = 0 l0 = 0 for i in range(1000): x = generate_01() if x == 1: l1 += 1 if x == 0: l0 += 1 print("l0:", l0) print("l1", l1)

  

标签:面试题,概率,return,生成器,01,l0,l1,n1,generate
来源: https://www.cnblogs.com/hjwbeginner-123/p/15468917.html