首页 > 其他分享 >蒙特卡罗法求圆周率

蒙特卡罗法求圆周率

时间:2024-06-07 17:55:24浏览次数:13  
标签:DOTS hits 圆周率 random 蒙特卡罗 法求

蒙特卡罗法求圆周率

  • 蒙特卡罗法也称统计模拟法、统计试验法。是把概率现象作为研究对象的数值模拟方法。是按抽样调查法求取统计值来推定未知特性量的计算方法。蒙特卡罗是摩纳哥的著名赌城,该法为表明其随机抽样的本质而命名。故适用于对离散系统进行计算仿真试验。在计算仿真中,通过构造一个和系统性能相近似的概率模型,并在数字计算机上进行随机试验,可以模拟系统的随机特性。

  • 本文使用蒙特卡罗法来求解圆周率π

上图是一个单位圆在笛卡尔坐标系的四分之一部分,在这个1x1的正方形内随机撒点。假设我们撒的点足够多,多到能够覆盖到这个正方形内的每一个点,此时我们用圆内点的数量除以整个点的数量就是面积的比,即四分之π,此时用这个值乘以4就得到了圆周率的近似值


Python代码实现

from random import random
 
DOTS = 1_0000_0000 # 撒点个数
hits = 0.0
for i in range(1, DOTS + 1):
    x, y = random(),random()  # random.random() 产生0-1之间的一个随机数
    dist = pow(x ** 2 + y ** 2, 0.5)  # 根号下x^2 + y^2,求到原点的距离
    if dist < 1:  # 距离小于1,则说明落在了圆内
        hits += 1
pi = 4 * (hits / DOTS)
print("圆周率的值是:{}".format(pi))

标签:DOTS,hits,圆周率,random,蒙特卡罗,法求
From: https://www.cnblogs.com/jackwolfey/p/18237642

相关文章

  • C语言Kruskal算法求最小生成树
    Kruskal算法求出最小生成树。图形算法描述先找最小权值边为1的边有(V1,V4),(V2,V9),保证不产生回路就可以成功选择边除去上一次找的边后,在找权值最小的边为2的有(V2,V3),(V4,V3),(V5,V6),(V9,V8),连接不产生回路的边除去之前找过的边,后面再看权值最小的边为3的边有(V1,V3),(V7,V8),(V9,V7)按顺......
  • 使用动态规划法求最大连续子序列和
    通过动态规划方法求最大连续子序列和问题描述:给定一个有n(n>=1)个整数的序列,求出其中最大连续子序列的和。如:{-2,11,-4,13,-5,-2},最大的连续子序列是:{11,-4,13}和为20。【规定】一个序列的最大连续子序列和至少是0,如果小于0,其结果为0。解法:使用一个整型数组arr[]来存......
  • 在 Google 电子表格中无法求和美元符号
    我想使用google电子表格管理我的支出。问题是我使用美元和欧元。我写的数字是23美元和25欧元。求和函数对欧元符号工作正常,但对美元符号返回零。我在这里设置了一个小示例:https://docs.google.com/spreadsheets/d/1_mg6xxsae2ybDHXQAqGLddXmJMDsYaaGkkhRY2......
  • A*算法求解八数码问题
    一、问题描述:A*算法是一种启发式图搜索算法,其特点在于对估价函数的定义上。对于一般的启发式图搜索,总是选择估价函数f值最小的节点作为扩展节点。因此,f是根据需要找到一条最小代价路径的观点来估算节点的,所以,考虑每个节点n的估价函数值为两个分量:f(n)=g(n)+h(n),从起始节点......
  • 粒子群算法及蜂群算法求多维函数极值对比
    1.粒子群算法    1.1粒子群算法简单介绍    粒子群优化算法源于对鸟群活动的研究。20世纪70年代许多学者对鸟群的群体性活动进行了深入研究。生物学家Reynolds提出了Boids模型,用来模拟鸟群聚集飞行的行为。在这个模型中每个个体都遵守三条规则:避免碰......
  • 【路径规划】基于遗传算法求解带时间窗容量限制的单配送中心多骑手外卖配送路径规划问
    研究背景:随着外卖业务的快速发展,如何合理安排多骑手的配送路径,减少配送时间和成本,成为外卖平台需要解决的重要问题。在实际操作中,骑手需要在一定的时间窗内完成配送,并且配送中心的配送能力也有限,因此需要考虑时间窗和容量限制的多骑手外卖配送路径规划问题。研究步骤:理解......
  • KPM算法求字符串的最小周期证明
    先给出公式ans=n-LPS[n-1]其中ans为最小周期,n为给出的由假设的周期字符串中提取出的子串长度,LPS为前缀函数,n-1为字符串最后的位置下标证明如下证明ans=n-LPS[n-1],思路:(1)证明特殊情况,即先对完整周期字符串进行证明,这时候的字符串组成是[1][2][3][4],即4个......
  • 【智能算法应用】遗传算法求解车间布局优化问题
    目录1.问题背景2.车间布局数学模型3.算法过程4.结果展示5.参考文献6.代码获取1.问题背景工厂设施布置的规划一直是工业工程领域不断研究和探索的内容,其中最具代表性之一的是系统布置设计(systemlayoutplanning,SLP)方法。作为一种经典且有效的方法,其为设施布......
  • 【智能算法应用】白鲸优化算法求解二维路径规划问题
    目录1.算法原理2.路径规划数学模型3.结果展示4.参考文献5.代码获取1.算法原理【智能算法】白鲸优化算法(BWO)原理及实现2.路径规划数学模型优化目标路径规划问题需要考虑三点:全局总路径最优避免碰撞到障碍物路径平滑性全局总路径最优考虑路径规划问题的全局最......
  • 遗传算法求解经典车间调度问题(JSP)
    车间调度问题Job-Shopschedulingproblem(JSP)车间调度问题(NP-hard问题):​ n个工件在m台机器上加工,每个工件有特定的加工工艺,每个工件加工的顺序及每道工序所花时间给定,安排工件在每台机器上工件的加工顺序,使得某种指标最优。题设为:1)不同工件的工序之间无顺序约束;2)工序开始则......