• 蒙特卡洛算法


    蒙特·卡罗方法(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
  • 相关阅读:
    女子腰背疼痛案
    老人心悸心膝部无力屈伸不利案
    经方生姜泻心汤临床应用发挥
    电话求诊易误治
    女子乳房结块案
    小儿手足口案
    门纯德老先生经验
    男子肋部掣痛案
    加味潜降汤治疗阴虚阳亢之眩晕(来自网络)
    三叉神经痛与芎胡六虫汤
  • 原文地址:https://www.cnblogs.com/yu-liang/p/9155238.html
Copyright © 2020-2023  润新知