π = arccos(-1) = 2arcsin(1) = 4arctan(1)
使用时可以这样
# define PI acos(-1)
或者
# define PI 3.1415926
若是想亲手计算出圆周率π
方法1:
// 方法一:在[0,1]对4/(1+x*x)积分
// pi=4*arctan(1) 等于在[0,1]对4/(1+x*x)积分
#include <stdio.h>
int main()
{
// pi=4*arctan(1)
int n = 50; // 将区间[0,1]等分为n分
double dx = (1.0 - 0) / n; // dx是步长
double sum = 0;
for (double i = 0; i < 1; i += dx)
{
sum += (1.0 / (1 + i * i));
}
sum *= 4 * dx;
printf("pi=%lf\n", sum);
return 0;
}
方法2:
// 方法二:将arctan(x)泰勒展开 arctan(x)=x-x^3/3+x^5/5-...+(-1)^n*(x^(2*n-1)/2*n-1)
// pi=4*arctan(1)=1-1/3+1/5-1/7+...+(-1)^n/(2*n-1)
#include <stdio.h>
int main()
{
double sum = 0.0;
int n = 100, last = 1;
for (int i = 1; i <= n; i++)
{
sum = sum + last * 1.0 / (2 * i - 1);
last = -last;
}
sum *= 4;
printf("pi=%lf\n", sum);
return 0;
}