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

计算Pi值,用C语言,程序,第1张

楼贺袭山禅中主这个方法应当用随机数来做。

思想:

在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=0i<Ni++)

{

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()

}

一个足以让渗伏你吐血的计算400位pi的C程序

int a=10000, b, c=2800, d, e, f[2801], g

main() {

for(b-cf[b++]=a/5)

for(d=0,g=c*2c -=14,printf("%.4d"纯渗,e+d/a),e=d%a)

for(b=cd+=f[b]*a,f[b]=d%--g,d/=g--,--bd*=b)

}

理论上只要用大数算法扩了就能一直算下去。我在Palm上面实现的那个就是基于这个算法,没有扩,算到4680位(受到Palm平台32k数组的长度限制)。

这个程序的特点是:你抱着想看看算pi原理的希望来读这个程序,结果发现就是看了也还是看不懂~~

转的,但是百度知道不允许贴地址哦

第二种:

用C语言编程π*π/6=1/1*1+1/2*2+1/3*3+。。。+1/n*n

#include<stdio.h>

#include<math.h>

main()

{

int n,i

double s=0

printf("输入n:")

scanf("%d",&n)

for(i=1i<=ni++)

{s=s+1.0/(i*i)

}

printf("pai=%f",sqrt(s*6))

}

第三种:

求pi=(1+1/做喊脊(1*3))*(1+1/(3*5))*(1+1/(5*7))…………直到最后一项的分数小于10的负6次方为止。

#include<stdio.h>

#include<math.h>

#include<stdlib.h>

void main()

{

double pi,i,j,sigh,term

i=1,j=3,sigh=1,term=1

while(sigh>1e-6)

{

sigh=1/(i*j)

term=(1+sigh)*term

i=i+2

j=j+2

}

pi=term

printf("pi=%f\n",pi)

}

1、对于精度设计,一般与时间绝搏成槐键反比,算法和时间也是成正比的

2、时间和CPU和内存又是成比例的。

以下非本人算法:

#include

<并明祥cstdio>

using

namespace

std

//某年Obfuscated

C

Contest佳作

long

a=10000,b,c=2800,d,e,f[2801],g

main(){for(b-c)f[b++]=a/5

for(d=0,g=c*2c-=14,printf(

"%.4d

",e+d/a),e=d%a)

for(b=cd+=f[b]*a,f[b]=d%--g,d/=g--,--bd*=b)}

===========================


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12304390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存