计算Pi值,用C语言,程序

来源:百度知道 编辑:UC知道 时间:2024/06/25 08:29:45
用单位圆内取点的方法

楼主这个方法应当用随机数来做。
思想:
在0到1之间取两个随机数,如果这两个随机数(x,y)在四分之一圆内,就加一。
最后用落在圆内的点数,除以总点数,就是PI了。

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>

#define N 300000

main()
{
long i,n=0;
float x,y,pi;

srand(time(NULL));
for (i=0;i<N;i++)
{
x=1.0*rand()/RAND_MAX;
y=1.0*rand()/RAND_MAX;
if (x*x+y*y<1)
n++;
}
pi=4.0*n/N;
printf("pi=%f\n",pi);
getch();
}

#include
#define PI_DIGITS 30(计算位数)
#define PI_BUFFLEN (PI_DIGITS*14/4)
unsigned long b,c,d,e,f[PI_BUFFLEN+1],g, n;
int main()
{
for(b=0;b!=PI_BUFFLEN;b++) f=2000;
for (e=0,c=PI_BUFFLEN;c;c-=14)
{
d=0;
for(b=c;b;b--)
{
d += f*10000;
g = b*2-1;
f = d%g;
d /= g;
if (b>1) d *= b-1;
if (d>4000000000l)
printf(&q