数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 4121|回复: 14

不断产生 [0,1) 中的随机数,直到随机数之和大于 1 为止,求产生次数 N 的数学期望值

[复制链接]
发表于 2019-12-13 09:16 | 显示全部楼层 |阅读模式
这类问题是陆老师的专业:
机器不断产生一个0到1的随机数,当这些随机数之和超过1即停止。若产生随机数的次数为N,求N的平均值。
天山草不知还有没有在?用机器模拟是天山兄的专长。

本帖被以下淘专辑推荐:

  • · 好貼|主题: 366, 订阅: 6
发表于 2019-12-13 20:16 | 显示全部楼层
本帖最后由 图老师3 于 2019-12-13 20:34 编辑

# -*- coding: utf-8 -*-

'''
机器不断产生一个0到1的随机数,当这些随机数之和超过1即停止。若产生随机数的次数为N,求N的平均值。

'''
#from math import pi,cos,sin,sqrt
#from math import *
#import numpy as np

import random
import time
time_start=time.time()

M=10#随机实验次数:
N=1000000#随机数累计和小于1的产生次数:

Sn=0
for j in range(1,M+1):  # range函数控制循环M次实验
    S=0
    i=0   
    while S<1:  # 控制循环
        i=i+1
        x=random.uniform(0,1)#生成一个指定[0,1]范围内的随机浮点数.   
        
        S=S+x
   
        if S>=1:
           print('%d次模拟实验随机产生%d个随机数的平均值=%.4f;'%(j,i,S/i))
           Sn=Sn+i
           break
print('%d模拟实验产生随机数的次数N的平均值=%.4f;'%(M,Sn/M))
print('-'*50)
time_end=time.time()
print('python3.7程序运行',time_end-time_start,'秒。')
print('-'*50)
回复 支持 反对

使用道具 举报

发表于 2019-12-13 20:17 | 显示全部楼层
本帖最后由 图老师3 于 2019-12-13 20:34 编辑

1次模拟实验随机产生2个随机数的平均值=0.5371;
2次模拟实验随机产生2个随机数的平均值=0.7050;
3次模拟实验随机产生2个随机数的平均值=0.5867;
4次模拟实验随机产生4个随机数的平均值=0.3547;
5次模拟实验随机产生2个随机数的平均值=0.5522;
6次模拟实验随机产生4个随机数的平均值=0.2938;
7次模拟实验随机产生2个随机数的平均值=0.8541;
8次模拟实验随机产生2个随机数的平均值=0.7628;
9次模拟实验随机产生4个随机数的平均值=0.2572;
10次模拟实验随机产生3个随机数的平均值=0.5755;
10模拟实验产生随机数的次数N的平均值=2.7000;
--------------------------------------------------
python3.7程序运行 0.02110004425048828 秒。
--------------------------------------------------
回复 支持 反对

使用道具 举报

发表于 2019-12-13 20:17 | 显示全部楼层
本帖最后由 图老师3 于 2019-12-13 20:37 编辑

1000000模拟实验,满足随机数之和超过1停止,产生随机数的次数N的平均值=2.7178;
回复 支持 反对

使用道具 举报

发表于 2019-12-13 20:17 | 显示全部楼层
本帖最后由 图老师3 于 2019-12-13 20:42 编辑

100000模拟实验,满足随机数之和超过1停止,产生随机数的次数N的平均值=2.7173;
--------------------------------------------------
python3.7程序运行 0.2678670883178711 秒。
--------------------------------------------------
回复 支持 反对

使用道具 举报

发表于 2019-12-13 20:42 | 显示全部楼层
:o接近等于自然数e?
回复 支持 反对

使用道具 举报

发表于 2019-12-13 20:46 | 显示全部楼层
1次模拟实验随机产生1个随机数的值=0.3861736572286061;
1次模拟实验随机产生2个随机数的值=0.8844879636827661;
1次模拟实验随机产生2个随机数的平均值=0.6353;
2次模拟实验随机产生1个随机数的值=0.7008062756431598;
2次模拟实验随机产生2个随机数的值=0.9974100775028278;
2次模拟实验随机产生2个随机数的平均值=0.8491;
3次模拟实验随机产生1个随机数的值=0.7017987059758740;
3次模拟实验随机产生2个随机数的值=0.9547599603688222;
3次模拟实验随机产生2个随机数的平均值=0.8283;
4次模拟实验随机产生1个随机数的值=0.3254368483608845;
4次模拟实验随机产生2个随机数的值=0.6903739038877443;
4次模拟实验随机产生2个随机数的平均值=0.5079;
5次模拟实验随机产生1个随机数的值=0.3127934816976464;
5次模拟实验随机产生2个随机数的值=0.6400674066459744;
5次模拟实验随机产生3个随机数的值=0.1960613295426064;
5次模拟实验随机产生3个随机数的平均值=0.3830;
6次模拟实验随机产生1个随机数的值=0.5597301740891710;
6次模拟实验随机产生2个随机数的值=0.3370304713853022;
6次模拟实验随机产生3个随机数的值=0.0242553052517925;
6次模拟实验随机产生4个随机数的值=0.6185163441706848;
6次模拟实验随机产生4个随机数的平均值=0.3849;
7次模拟实验随机产生1个随机数的值=0.4442872634385638;
7次模拟实验随机产生2个随机数的值=0.3423732731103815;
7次模拟实验随机产生3个随机数的值=0.4079551764619440;
7次模拟实验随机产生3个随机数的平均值=0.3982;
8次模拟实验随机产生1个随机数的值=0.5188230120753302;
8次模拟实验随机产生2个随机数的值=0.8722316609504840;
8次模拟实验随机产生2个随机数的平均值=0.6955;
9次模拟实验随机产生1个随机数的值=0.2933273371442769;
9次模拟实验随机产生2个随机数的值=0.9883171256238997;
9次模拟实验随机产生2个随机数的平均值=0.6408;
10次模拟实验随机产生1个随机数的值=0.1473790821146564;
10次模拟实验随机产生2个随机数的值=0.0652117887276070;
10次模拟实验随机产生3个随机数的值=0.9781645317952616;
10次模拟实验随机产生3个随机数的平均值=0.3969;
11次模拟实验随机产生1个随机数的值=0.0698803209609599;
11次模拟实验随机产生2个随机数的值=0.5471906655748902;
11次模拟实验随机产生3个随机数的值=0.9090075260017163;
11次模拟实验随机产生3个随机数的平均值=0.5087;
12次模拟实验随机产生1个随机数的值=0.1161547159520582;
12次模拟实验随机产生2个随机数的值=0.1372109381745538;
12次模拟实验随机产生3个随机数的值=0.6781271823187398;
12次模拟实验随机产生4个随机数的值=0.0935158731307663;
12次模拟实验随机产生4个随机数的平均值=0.2563;
13次模拟实验随机产生1个随机数的值=0.3282491543053336;
13次模拟实验随机产生2个随机数的值=0.1822784269292298;
13次模拟实验随机产生3个随机数的值=0.0207794643732266;
13次模拟实验随机产生4个随机数的值=0.0809039180035952;
13次模拟实验随机产生5个随机数的值=0.2327518359007821;
13次模拟实验随机产生6个随机数的值=0.3575065581167423;
13次模拟实验随机产生6个随机数的平均值=0.2004;
14次模拟实验随机产生1个随机数的值=0.2254238097730300;
14次模拟实验随机产生2个随机数的值=0.7039728258712733;
14次模拟实验随机产生3个随机数的值=0.1774459842283450;
14次模拟实验随机产生3个随机数的平均值=0.3689;
15次模拟实验随机产生1个随机数的值=0.3622992122287870;
15次模拟实验随机产生2个随机数的值=0.5354351699849244;
15次模拟实验随机产生3个随机数的值=0.4060214472479886;
15次模拟实验随机产生3个随机数的平均值=0.4346;
16次模拟实验随机产生1个随机数的值=0.6762544662252045;
16次模拟实验随机产生2个随机数的值=0.8710870045875952;
16次模拟实验随机产生2个随机数的平均值=0.7737;
17次模拟实验随机产生1个随机数的值=0.1906747805563952;
17次模拟实验随机产生2个随机数的值=0.4961787960790203;
17次模拟实验随机产生3个随机数的值=0.2533619441331488;
17次模拟实验随机产生4个随机数的值=0.3163443825993532;
17次模拟实验随机产生4个随机数的平均值=0.3141;
18次模拟实验随机产生1个随机数的值=0.0979439123591489;
18次模拟实验随机产生2个随机数的值=0.1897767164276141;
18次模拟实验随机产生3个随机数的值=0.2278995496177794;
18次模拟实验随机产生4个随机数的值=0.0562245478173122;
18次模拟实验随机产生5个随机数的值=0.9057332233907974;
18次模拟实验随机产生5个随机数的平均值=0.2955;
19次模拟实验随机产生1个随机数的值=0.0164740671150260;
19次模拟实验随机产生2个随机数的值=0.2718261194961690;
19次模拟实验随机产生3个随机数的值=0.4076611714610469;
19次模拟实验随机产生4个随机数的值=0.0029208627385926;
19次模拟实验随机产生5个随机数的值=0.6133386181740380;
19次模拟实验随机产生5个随机数的平均值=0.2624;
20次模拟实验随机产生1个随机数的值=0.2252113451003765;
20次模拟实验随机产生2个随机数的值=0.3633696235162515;
20次模拟实验随机产生3个随机数的值=0.2293057725470727;
20次模拟实验随机产生4个随机数的值=0.0827024848453457;
20次模拟实验随机产生5个随机数的值=0.9569240394820792;
20次模拟实验随机产生5个随机数的平均值=0.3715;
20模拟实验,满足随机数之和超过1停止,产生随机数的次数N的平均值=3.2500;
--------------------------------------------------
python3.7程序运行 0.0050182342529296875 秒。
--------------------------------------------------
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-13 20:47 | 显示全部楼层
图老师3 发表于 2019-12-13 12:17
这结果就是一个变量;不确定

谢谢图老师做的计算模拟。这个结果是变量?说实话我有点不太相信。因为以前有一个类似的模拟,求出和X的随机变量的数学期望,结果是确定的e/2。听说还有理论分析,我只是把变量改成产生的次数N,这个结果就变成不确定的?如果确实如此,还希望有人能作出理论分析。
回复 支持 反对

使用道具 举报

发表于 2019-12-13 20:56 | 显示全部楼层
机器数要均匀随机。加这个前提才准确;
回复 支持 反对

使用道具 举报

发表于 2019-12-13 23:56 | 显示全部楼层
N=1的概率为0,N=2的概率为1/2,N=3的概率为1/6 ……N=n的概率为1/n!    E=∑n/n!=∑1/(n-1)!=e
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-4-25 09:21 , Processed in 0.075195 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表