首页 > Python随机数生成器的正确用法应该是什么

Python随机数生成器的正确用法应该是什么

写这段代码的起因是一道很简单的数学题:

数学上的做法如下:

在用笔算得出正确结果(4.5^100)后,想用Python写一段代码进行模拟以验证,代码如下:

import random
import datetime
T=100
ex=0
random.seed(datetime.datetime.now())
while T>0:
    y=1
    count=100
    while count>0:
        x=random.randint(0,9)
        y*=x
        count-=1
    ex+=y
    T-=1
ex/=100
print(ex)

然而每次输出的结果都是0,所以。。。Python的随机数生成器应该如何正确使用?


期望值是大量实验的平均值,你这个是只是单次实验,你几次都得到0是因为,方差很大,结果主要分布在大数和0。结果不为0的概率也就是100个随机数中不出现0的概率,这就是0.9的100次方,大概0.000026,根据大数定理(还是什么其他定理来着,这学期的数理统计和概率论挂了?)可以算出你能模拟出期望所需的最少需要进行的实验次数


建议再看一下大数定理,你这里的一百次只是一次实验,你需要一个外层循环。。。


你随机数没用错,是你的程序有问题。你的y*=x这行但凡只要有一个x随机到0,最后得出的y就是0,你循环100次x肯定会随机到0的。这是小学乘法题啊同学

【热门文章】
【热门文章】