题目描述:、
已知随机数生成函数rand7()能产生的随机数是整数1~7的均匀分布,如何构造rand10()函数,使其产生的随机数是整数1~10的均匀分布.
import random
def rand7():
"""产生的随机数是整数1-7的均匀分布"""
return int(random.uniform(1, 7))
def rand10():
"""产生的随机数是整数1-10的均匀分布"""
x = 0
while True:
x = (rand7()-1)*7 + rand7()
if x <= 40:
break
return x%10 + 1
if __name__ == "__main__":
i = 0
while i != 10:
print(rand10())
i += 1