//by YewLi
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<ctime>
using namespace std;
float computingPI(int n){ //计算圆周率的函数,返回值即为圆周率
float flag = 0,m = n;
srand(unsigned(time(NULL)));
float a,b,pi;
for(int i = 1;i <= n;i++){
a = rand()/float(RAND_MAX),b = rand()/float(RAND_MAX);
//cout<<a<<" "<<b<<endl;
if(a*a + b*b < 1)flag++;
}
//cout<<flag;
pi = flag/m*4;
return pi;
}
int main(){
int m;
cout<<"请输入随机点数量:";
cin>>m;
cout<< computingPI(m);
}
老高考几何概型题了,随机数记得申明头文件里的库就成。
时间种子随机,生成随机数,多次重复,按高考方法算就vans。
//by YewLi
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main(){
double x = 0,i = 1;
int flag = 1;
while(1/i > 10e-6){
//cout<<x<<endl;
x += flag*1/i;
i += 2,flag = -flag;
}
cout<<setprecision(20)<<x*4<<endl;
return 0;
}
while循环的应用题,10e-6是边界,iomanip库里的setprecision控制输出精度,a了