📄 exp2.cpp
字号:
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
void fun1() //计算pi值
{
int i,num=0;
int total=10000000;
double pi;
srand(time(NULL));
double x,y;
for(i=1;i<=total;i++)
{
x=double(rand())/RAND_MAX;
y=double(rand())/RAND_MAX;
x=x*2-1;
y=y*2-1;
if(x*x+y*y<=1.0)
num++;
}
pi=4.0*(double)num/total;
cout<<"The calculated value of PI is "<<pi<<endl;
}
void fun2() //用撒点体积法求二重积分结果
{
int i;
int total=1000000;
double sum=0;
srand(time(NULL));
double x,y;
for(i=1;i<=total;i++)
{
x=double(rand())/RAND_MAX;
y=double(rand())/RAND_MAX;
y=y*2;
sum=sum+x*x+y*y;
}
sum=sum/total;
cout<<"method1: The result of the integral is "<<2*sum<<endl;
}
void fun3() //用随机变量期望的方法求解二重积分结果
{
int i,num=0;
int total=1000000;
double sum=0;
srand(time(NULL));
double x,y,z;
for(i=1;i<=total;i++)
{
x=double(rand())/RAND_MAX;
y=double(rand())/RAND_MAX;
z=double(rand())/RAND_MAX;
y=y*2;
z=z*5;
if(z<=x*x+y*y)
num++;
}
cout<<"method2: The result of the integral is "<<10*double(num)/total<<endl;
}
void main()
{
fun1();
fun2();
fun3();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -