蒙特卡罗
蒙特卡罗(Monte Carlo)方法也称统计模拟方法,是按抽样调查法求取统计值来推定未知特性量的计算方法。
又称随机抽样或统计试验方法。当所求解的问题是某种事件出现的概率,或某随机变量的期望值时,可以通过某种“试验”方法求解。

monte carlo可以用来应用到很多领域,比如求积分,求圆周率

π值的计算

构造一个单位正方形和一个单位圆的1/4,往整个区域内随机投入点,根据点到原点的距离判断点是落在1/4的圆内还是在圆外,从而根据落在两个不同区域的点的数目,求出两个落在两个区域点数量的比值,这个比值实际上近似于点落在圆内的概率,也就是两个区域面积之比,根据等式关系从而求出圆周率π

#include <iostream>
#include <cmath>
#include <random>
// --- monte carlo --- //
double montecarlo_pi(int epochs = 100000)
{double r = 1.0;std::default_random_engine random_engine;std::uniform_real_distribution<double> distribution(0, 1);int count = 0;for (int i = 0; i < epochs; i++){double x = distribution(random_engine);double y = distribution(random_engine);double distance = sqrt(x * x + y * y);if (distance <= r)count++;}double PI = 4 * (double)count / epochs;return PI;
}int main()
{std::cout << "==== monte carlo test ====" << std::endl;std::cout << "mathmatic accurate PI: " << 3.1415926 << std::endl;std::cout << "montecarlo computed PI: " << montecarlo_pi() << std::endl;return 0;
}

C++笔记 蒙特卡罗计算π值相关推荐

  1. OpenCV 学习笔记-day13 像素值统计 统计计算最大最小值,平均值和标准差 (minMaxLoc()和meanStdDev()函数的使用)

    OpenCV 学习笔记 day13 像素值统计 函数 minMaxLoc(); 最大值最小值统计 meanStdDev();平均值和标准方差统计 代码 day13 像素值统计 函数 minMaxLoc ...

  2. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记...

    机器学习实战(Machine Learning in Action)学习笔记----06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习 作者:米仓山下 时 ...

  3. Python数据分析学习笔记:计算相关系数

    Python数据分析学习笔记:计算相关系数 1.相关系数概念 相关系数,或称线性相关系数.皮氏积矩相关系数(Pearson product-moment correlation coefficient ...

  4. Maple学习笔记——数学计算与数据处理

    Maple学习笔记--数学计算与数据处理 数据计算 多项式相关: 求解方程.不等式 矩阵计算.线性代数: 微积分 多变量和向量微积分 优化 概率与统计 数据处理 导入数据 数据计算 多项式相关: 1. ...

  5. python利用以下公式求π的值_Python 计算 π 值的简单示例

    这篇文章主要为大家详细介绍了Python 计算 π 值的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! π是一 ...

  6. matlab 平均梯度,OpenCV 自学笔记33. 计算图像的均值、标准差和平均梯度

    OpenCV 自学笔记33. 计算图像的均值.标准差和平均梯度 均值.标准差和平均梯度是验证图像质量的常用指标.其中: 均值反映了图像的亮度,均值越大说明图像亮度越大,反之越小: 标准差反映了图像像素 ...

  7. opencv学习笔记之二值化

    opencv学习笔记之二值化 1.什么是二值化 二值化,从名词意义上可以看出来,是将一共物体转化成两个值.二值即:0或255.即一个白色一个黑色.即一个图片经过二值化之后会显示成白色和黑色的形式. 2 ...

  8. oracle笔记之计算年龄、工龄和TRUNC

    oracle笔记之计算年龄.工龄和TRUNC 方法一:利用months_between 函数计算 SELECT TRUNC(months_between(sysdate, birthday)/12) ...

  9. JavaScript实现计算π值算法(附完整源码)

    JavaScript实现计算π值算法(附完整源码) π.js完整源代码 π.js完整源代码 const circleRadius = 1; function getNGonSideLength(sid ...

最新文章

  1. Servlet——简单用户登录实例+http协议解析
  2. python唯一映射类型_Python基础:04映射类型
  3. Python Pandas –合并,联接和串联
  4. 03-JavaScript基础-数据及数据类型
  5. 软件开发部分文档说明
  6. 100兆的网速在电脑上怎样测试软件,电脑如何测网速多少兆(台式电脑怎么测网速多少兆)...
  7. next主题配置文件配置项介绍
  8. RNN(LSTMGRU)文本分类(PaddlePaddle2.0)
  9. python怎么把小写改成大写_Python 把金额小写转换成大写
  10. 如何在Ubuntu18.4中设置ERPNEXT开源ERP生产环境开机运行
  11. python extension c++ 扩展
  12. 拉勾网positionAjax获取的时候(带有账号登陆的时候)频繁获取被拉黑
  13. java路上偶遇占小狼
  14. 手速最快的是电竞选手?错了,是程序员
  15. Win10微软帐户切换不回Administrator本地帐户的解决方法
  16. c中纠结不清的点(1)
  17. 互联网快讯:华为正式开启二手机业务;法院审理认定阿卡索赔猿辅导20万;极米高性能投影产品获用户青睐;谷歌Pixel 6 Pro首次放弃使用高通基带
  18. 微软系列的PPC开发工具【转贴】
  19. 页面生命周期:DOMContentLoaded,load,beforeunload,unload
  20. 数据库集合运算与关系代数

热门文章

  1. MySql存储过程与函数
  2. 地图匹配实例-几何匹配
  3. 高斯旋转热源与双椭球热源_【干货】论焊接,3D打印模拟的热源模型——焊缝、3D打印高度变换模拟...
  4. vue二维码生成可自定义logo
  5. 冒充linux内核,4岁小萝莉向Linux内核贡献代码修复「漏洞」而且已经合并到内核...
  6. 光电池和光电二极管的区别
  7. 微信小程序里面的单步调试和变量查看
  8. 计算机交互媒体应用范围,浅析交互媒体设计中的科技与艺术的关系
  9. 第一阶段:2014年10月13日-12月14日,36天完成。每周5天,8周完成。
  10. solidworks装配体改为柔性_软件技巧:大神整理的SolidWorks技巧总结