zoukankan      html  css  js  c++  java
  • 蒙特卡洛算法

    蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。

    将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解

     1 #蒙特卡洛算法求圆周率
     2 #使用1*1的正方形,齐内有个1/4的圆,比较落在圆中的点和落在整个正方形上的点,计算比值,进而计算圆周率
     3 import random
     4 import math
     5 
     6 def main():
     7     n=int(input('迭代次数:'))
     8     total=0
     9     for i in range(n):
    10         x,y=random.random(),random.random()#产生一个随机点
    11         if math.sqrt(x**2+y**2)<1.0:
    12             total+=1
    13     mypi=4.0*total/n
    14     print(mypi)
    15     print(math.pi)
    16     print(abs(math.pi-mypi)/math.pi)
    17 
    18 main()
    19 ------------------------------------------------------------
    20 迭代次数:100
    21 3.36
    22 3.141592653589793
    23 0.06952121757753665
    计算圆周率
    1 from random import random
    2 n=10**6
    3 print(sum(1 if random()**2+random()**2<1 else 0 for i in range(n))*4.0/n)
    4 
    5 ------------------------------------------------------
    6 3.14034
    计算圆周率2
  • 相关阅读:
    领料单取整
    财务应付金额对不上的
    销售订单计算交期
    辅助单位启用
    K3CLOUD日志目录
    QLIKVIEW-日期格式,数字格式写法
    MRP运算报错-清除预留
    整单折扣后 财务、暂估应付价税合计对不上的问题处理
    BZOJ 2976: [Poi2002]出圈游戏 Excrt+set
    BZOJ 3060: [Poi2012]Tour de Byteotia 并查集
  • 原文地址:https://www.cnblogs.com/yu-liang/p/9155238.html
Copyright © 2011-2022 走看看