【基础算法】概率算法 & C++实现

简介: 概率算法 & C++实现

●蒙特卡洛问题


bf25e897cfede83bca30e0fc210e1277_93a3dca2dd774c3b8d8170df8cc1b4a3.png

#include<iostream>
#include<cmath>
#include<ctime>
#include<cstdlib>
using namespace std;
class gailv {
public:
  gailv()
  {
  cout << "输入点的数量:" << endl;
  }
  int montepi(int a)
  {
  srand(time(NULL));  //产生随机数种子
  for(int i=1;i<a;i++)
  { 
    x = (double)rand()/RAND_MAX; //x方向上产生0~1的随机数
    y =(double)rand()/ RAND_MAX;  //y方向上产生0~1的随机数
    if (pow(x, 2) + pow(y, 2) <= 1)  //x^2+y^2<=1; 阴影的区域
    sum++;  //记录点的个数
  }
  pi = (4.0 * sum) / (double)a;   //  sum表示了阴影区域面积/a表示了正方形区域的面积
  return pi;
  }
  ~gailv()
  {
  cout << "蒙特卡洛算法所求的pi的值:" << pi << endl;
  }
  int n;
  double pi;
  double x, y;
  double sum;
};
void text()
{
  gailv gl;
  cin>>gl.n;
  gl.sum = 0;
  gl.montepi(gl.n);
}
int main()
{
  text();
}

bbb79afa05c000567cb86ddadd7fe4da_dc52af29ee9a4e898b3bbcbc24fd2566.png

目录
相关文章
|
2月前
|
存储 算法 C++
高精度算法(加、减、乘、除,使用c++实现)
高精度算法(加、减、乘、除,使用c++实现)
649 0
高精度算法(加、减、乘、除,使用c++实现)
|
2月前
|
存储 算法 决策智能
【算法】博弈论(C/C++)
【算法】博弈论(C/C++)
|
2月前
|
存储 算法 C++
【算法】哈希映射(C/C++)
【算法】哈希映射(C/C++)
|
2月前
|
机器学习/深度学习 人工智能 算法
【算法】最长公共子序列(C/C++)
【算法】最长公共子序列(C/C++)
|
2月前
|
人工智能 算法 BI
一篇带你速通差分算法(C/C++)
一篇带你速通差分算法(C/C++)
|
2月前
|
人工智能 算法 C++
一篇带你速通前缀和算法(C/C++)
一篇带你速通前缀和算法(C/C++)
|
2月前
|
存储 算法 C++
弗洛伊德(Floyd)算法(C/C++)
弗洛伊德(Floyd)算法(C/C++)
|
2月前
|
存储 算法 程序员
迪杰斯特拉(Dijkstra)算法(C/C++)
迪杰斯特拉(Dijkstra)算法(C/C++)
|
2月前
|
算法 C++
【算法解题思想】动态规划+深度优先搜索(C/C++)
【算法解题思想】动态规划+深度优先搜索(C/C++)
|
2月前
|
算法 C++
【算法】DP背包问题(C/C++)
【算法】DP背包问题(C/C++)