2008-01-08

080108统计模拟法计算pai的近似值.xls

    在08-1-8,forcode(奇想录) <woodphone@gmail.com> 写道:

        前天在广州图书馆看ross的《统计模拟》里的一个例题,今天按照回忆在excel里弄出来了计算pai值的办法,可见模拟法还是挺有用的。
        原理很简单:
http://www.qixianglu.cn/621111.html
        一个边长为2的正方形,面积也就是4,中间有一个半径为1的圆,按照公式,圆的面积是pai,那么,模拟正方形内N个均匀分布的随机点,如果落在圆内就编码为1,如果落在圆外的正方形内,就编码为0,然后所有编码值加起来除以N,就是圆的面积占正方形的面积的近似比例,也等于pai/4,这样,N越大,算出来的pai值越精确,我模拟了1000个点,刚好算出来pai值等于3.14, 因为我将这1000个随机点距离圆心的距离排序之后,第785个值开始大于1,意味着786之后的点都落在圆外,785×4/1000=3.14。如果模拟更多的点,就可以得到更加精确的pai值。
        附件里是excel表格,有兴趣可以看看。
http://tinyurl.com/39gbws


A这列用:=rand()生成了1000个0~1之间的随机数
B这格用:=2*$a1生成了1000个0~2之间的随机数
C这格用:=$b1-1生成了1000个-1~+1之间的随机数,用于模拟随机点的X坐标
D格同C类似,用于模拟随机点的Y坐标
然后E格用X、Y坐标来计算该点距离圆心的距离。
然后F格排序,计算距离圆心小于1的点(也就是落在圆内的点)的数量,也就是圆的面积与正方形面积的近似比例。


        我今天从图书馆借了《复杂系统建模与仿真》这本书,寒假好好看看。
        --~--~---------~--~----~------------~-------~--~----~
        您收到此信息是由于您订阅了 Google 论坛"人工社会"论坛。
         要在此论坛发帖,请发电子邮件到 artificialsociety@googlegroups.com
         要退订此论坛,请发邮件至 artificialsociety-unsubscribe@googlegroups.com
         更多选项,请通过 http://groups.google.com/group/artificialsociety?hl=zh-CN 访问该
        论坛
--
未来新技术和新趋势的种种可能:
奇想录 http://www.qixianglu.cn
订   阅 http://feed.feedsky.com/woodphone
非主流的科幻界的非主流论坛——奇想家园:
http://www.douban.com/group/forcode/

没有评论: