用蒙特卡罗法求圆周率(Python)

用“大数据”的方法求圆周率Pi:
思路:计算机随机从0到1的数组成坐标为(x,y)的坐标,假设这里有一个以原点(0,0)为圆心,半径为1的,只看第一象限那个四分之一的圆,此时其面积为Pi/4,这个圆被一个第一象限中边长为1的正方形包住,面积为1。计算机随机生成的点(x,y),判断该点是否在四分之一圆内。随机生成n个点,统计落到圆内的点与n的比值,这个比值与面积之比相同,即:落到圆内的点数:n=四分之一圆的面积:正方形的面积,所以Pi=落到圆内的点数/(n*4)。随机取的点越多越精确。
以下为程序,要利用一个随机产生的函数random(),先载入random这个库,用import random语句实现:

import random
def pi(times):
    sum=0
    for i in range(times):
        x=random.random()
        y=random.random()
        d2=x*x+y*y
        if d2<=1:sum+=1
    return(sum/times*4)
times=100000000
x=pi(times)
print("Pi=%.8f" % (x))

(此文为看沙行勉教授的《计算机科学导论——以Python为舟》所写)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值