蒙特卡罗算法:PI
来源:互联网 发布:矩阵和行列式的转换 编辑:程序博客网 时间:2024/06/05 16:43
原理: 如果均匀向正方形内撒点,那么落入阴影部分的点数与全部的点数之比是S阴影/S正 = pi / 4 只要撒入的点越多,值越相近
算法实现:
1、均匀撒点,使用随机函数来实现,产生【0,1】之间的随机数的坐标值【x,y】
2、区域判断:图中阴影部分特点是坐标原点的离坐标原点小于等于1 x *x + y * y <= 1
// MouteCalr.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <IOSTREAM>#include <STDIO.H>#include <STDLIB.H>#include <CTIME>using namespace std;double MotenPi(int n){int i, sum;double pi;double x, y;sum = 0;srand(time(NULL));// 均匀撒点for (i=1; i < n; i++){// 【0,1】区域撒点x = (double) rand() / RAND_MAX;y = (double) rand() / RAND_MAX;// 判断区域if ((x *x + y * y) <= 1){sum++;}}pi = 4.0 *sum / n;return pi;}int main(int argc, char* argv[]){int n;double pi;cout<<"输入撒点的个数: "<<endl;cin>>n;pi = MotenPi(n);std::cout<<"pi = "<<pi<<endl;return 0;}/* 输入撒点的个数: 131312312 pi = 3.14148 Press any key to continue */
阅读全文
0 0
- 蒙特卡罗算法:PI
- PI算法
- 蒙特卡罗算法计算圆周率PI(C++)
- 4_蒙特卡罗算法求圆周率PI
- 概率算法求PI
- 计算PI值到一亿位的算法
- 计算PI值到一亿位的算法
- 蒙特卡罗概率计算PI
- PI
- pi
- Pi
- PI
- pi
- Pi
- Pi
- [pi
- pi
- PI
- Android Studio 新建编辑条 点击按钮显示控件中的内容
- 2017/12/9C语言作业
- 京东的接口
- Ajax跨域问题解决方案
- LC-Reshape the Matrix
- 蒙特卡罗算法:PI
- 【Eclipse】解决中文字体过小问题
- 水平集 LevelSet 代码实现(转载) opencv c++
- python变量
- 个人总结71
- 崩坏3角色渲染分析
- mayavi运行出现with the gpu_shader4 extension is not supported
- 不借助第三个变量交换两个数值类型变量的值
- ACE中的Proactor介绍和应用实例