094.求π的近似值

简介: 094.求π的近似值
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#define N 30000
void main()
{
   double e=0.1,b=0.5,c,d;
   long int i;                /*i: 正多边形边数*/
   float x,y;
   int c2=0,d2=0;
   clrscr();
   puts("***********************************************************");
   puts("*      This program is to calculate PI approximatively    *");
   puts("*                    in two methods.                      *");
   puts("*       One method is Regular Polygon Approximating,      *");
   puts("*          the other is Random Number Method.             *");
   puts("***********************************************************");
   puts("\n >> Result of Regular Polygon Approximating:");
   for(i=6;;i*=2)            /*正多边形边数加倍*/
   {
      d=1.0-sqrt(1.0-b*b);     /*计算圆内接正多边形的边长*/
      b=0.5*sqrt(b*b+d*d);
      if(2*i*b-i*e<1e-15) break;         /*精度达1e-15则停止计算*/
      e=b;      /*保存本次正多边形的边长作为下一次精度控制的依据*/
   }
   printf("---------------------------------------------------------\n");
   printf(" >> pi=%.15lf\n",2*i*b);       /*输出π值和正多边形的边数*/
   printf(" >> The number of edges of required polygon:%ld\n",i);
   printf("---------------------------------------------------------\n");
   randomize();
   while(c2++<=N)
   {
        x=random(101);      /*x:坐标。产生0到100之间共101个的随机数*/
        y=random(101);      /*y:坐标。产生0到100之间共101个的随机数*/
        if(x*x+y*y<=10000)     /*利用圆方程判断点是否落在圆内*/
            d2++;
   }
   puts("\n >> Result of Random Number Method:");
   printf("---------------------------------------------------------\n");
   printf(" >> pi=%f\n",4.*d2/N);    /*输出求出的π值*/
   printf("---------------------------------------------------------\n");
   puts("\n Press any key to quit...");
   getch();
}
相关文章
|
机器学习/深度学习 算法
专题六数值微积分与方程求解-2
专题六数值微积分与方程求解
114 0
|
算法 Serverless
专题六数值微积分与方程求解-1
专题六数值微积分与方程求解
126 0
|
数据可视化 Python
八种方法求π的近似值
八种方法求π的近似值
1198 0
八种方法求π的近似值
(公式)用欧拉公式推导三角函数恒等式
(公式)用欧拉公式推导三角函数恒等式
255 0
(公式)用欧拉公式推导三角函数恒等式
|
C++
【C/C++】用格雷戈里公式求π
输入精度e,使用格雷戈里公式(π/4​=1-1/3+1/5+...)求π的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funpi(e)求π的近似值。
503 0
【C/C++】用格雷戈里公式求π
三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式
三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式
672 0
三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式
C/C++编程题之取近似值
C/C++编程题之取近似值
|
算法
绝对值不等式(贪心)
复习acwing算法基础课的内容,本篇为讲解基础算法:贪心——绝对值不等式,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上。
140 0
绝对值不等式(贪心)
《算法零基础100讲》(第1讲) 幂和对数
《算法零基础100讲》(第1讲) 幂和对数
《算法零基础100讲》(第1讲) 幂和对数