c++计算圆周率

/*
Description
输入n值,并利用格里高里公式计算并输出圆周率: 
Input
输入公式中的n值。 
Output
输出圆周率,保留5位小数。 
Sample Input
1
Sample Output
2.66667
*/
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int n;
	double sum=0;
	double pi;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		sum=sum+(1.0/(4*i-3)-1.0/(4*i-1));
	}
	pi=sum*4;
	cout<<setiosflags(ios::fixed)<<setprecision(5)<<pi<<endl;
	return 0;
}

计算圆周率的方法有很多种,其中比较简单的方法是使用蒙特卡罗方法。蒙特卡罗方法是一种统计性的数值计算方法,利用随机数模拟实验过程,通过对实验结果的分析来解决问题。 具体实现思路如下: 1. 在一个正方形内画一个圆,圆的半径为正方形的边长的一半。 2. 生成随机点,将这些点均匀地分布在正方形内,计算这些点中有多少个落在圆内。 3. 根据落在圆内的点数,估算圆的面积。因为圆的面积是固定的,而正方形的面积可以计算得到,所以可以通过圆和正方形的面积比值来估算圆周率。 4. 重复进行步骤2和步骤3,直到估算结果收敛到一定精度为止。 下面是 C++ 代码实现: ```c++ #include <iostream> #include <cmath> #include <cstdlib> #include <ctime> using namespace std; int main() { srand(time(NULL)); // 初始化随机数种子 int n; // 生成随机点数 cin >> n; int count = 0; // 落在圆内的点数 for (int i = 0; i < n; i++) { double x = (double)rand() / RAND_MAX; // 生成0~1之间的随机数 double y = (double)rand() / RAND_MAX; if (sqrt(x * x + y * y) <= 1) { // 判断是否落在圆内 count++; } } double pi = 4.0 * count / n; // 估算圆周率 cout << "圆周率的估计值为:" << pi << endl; return 0; } ``` 在代码中,我们使用了 `rand()` 函数来生成随机数,并用 `sqrt()` 函数计算点到圆心的距离,判断该点是否落在圆内。根据落在圆内的点数,估算圆周率并输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值