码迷,mamicode.com
首页 > 其他好文 > 详细

一种计算e的方法

时间:2014-07-22 23:06:14      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   for   re   c   

原文地址:http://hankjin.blog.163.com/blog/static/3373193720108811316123/

原理:平均e个(0,1)之间的随机数之和会大于1.
原因:n个数之和小于1的概率是1/n!,则n个数之和大于1的概率则是1-1/n!;
恰好n个数之后大于1的概率,等于n个数之后大于1的概率减去n-1个数之和大于1的概率,即
(1-1/n!)
- (1-1/(n-1)!) = (n-1)/n!
则n的期望为
sum( (n-1)/n! * n ) = sum( (n-1)/(n-1)! )
=
sum(n/n!)
又因为sum(n/n!)=e,所以平均e个(0,1)之间随机数之和大于1.
代码如下:可惜收敛较慢,效率较低。
#!/usr/bin/python
‘‘‘A
method to calculate e
‘‘‘
__author__ =
"hankjin<hankjin@163.com>"
import random,math
def
calce(iter=1000000):
    ‘‘‘ calculate math.e with <iter>
iterations.
    ‘‘‘
    res=0
    for i in range(iter):
       
tmp=0.0
        while tmp<1:
            res+=1
           
tmp+=random.random()
    return float(res)/iter
if
__name__==‘__main__‘:
    print(‘real e=‘, math.e)
    print(‘calculated
e=%s‘, calce())

一种计算e的方法,码迷,mamicode.com

一种计算e的方法

标签:blog   http   io   for   re   c   

原文地址:http://www.cnblogs.com/CocoWang/p/3700606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!