许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  e值的Monte Carlo法估计:数值计算与实现

e值的Monte Carlo法估计:数值计算与实现

阅读数 4
点赞 0
article_banner


伯努利信封装错问题估计e值

  • 一.问题的提出 二.问题的分析 三.代码实现


用MonteCarlo法估计自然常数e的值。

一.问题的提出

​ 一群人每人写一张卡片,卡片上是自己的名字。把卡片收上去,打乱次序,再随机发给每一个人。此时每个人拿到的都不是自己的概率趋近与 1 e \frac{1}{e} e1​。

二.问题的分析

如果我们多次重复此次实验( n n n次),那么用求得的事件每个人拿到的都不是自己的数字的事件发生的次数为 m m m,我们可以用大数定律求得: ∀ ϵ > 0 , l i m n → ∞ P { ∣ m n − 1 e ∣ < ϵ } = 1 \forall \epsilon >0,lim_{n\rightarrow \infty}P\{{|\frac{m}{n}-\frac{1}{e}|<\epsilon}\} = 1 ∀ϵ>0,limn→∞​P{∣nm​−e1​∣<ϵ}=1。

三. 代码实现

import random,math
import matplotlib.pyplot as plt
numbers = 100 #总共有100个人
num = 10000   #实验总共重复10000次
Prop = 0
m = 0
xValue = []
yValue = []
zValue = []
randLine = []
for k in range(numbers):
    randLine.append(k)
for i in range(num):
    random.shuffle(randLine)
    for j in range(numbers):
        if randLine[j] == j:
            break
        if(j == numbers-1 ):
            m += 1
    if m == 0:
        m = 1e-5
    xValue.append(i)
    yValue.append(i/m)
Prop = m/num
plt.plot(xValue,yValue,color = 'blue',label = 'Estimate Value')
plt.xlabel('The numbers')
plt.ylabel('The estimate value of e')
plt.legend()
print("e的估计值是{:.4f}。".format(1/Prop))
plt.show()

迭代曲线为:

在这里插入图片描述

   结果是:

e的估计值是2.7203。



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空