當前位置:首頁 » 編程語言 » 電機PI演算法c語言編程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

電機PI演算法c語言編程

發布時間: 2023-06-12 19:40:22

⑴ C語言計算PI值,

在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);
}

⑵ 那個計算π的C語言程序是怎麼寫的啊

1、PI的值可以通過以下公式計算出來,

π/4=1-1/3+1/5-1/7……

編寫循環程序,當這種計算方法所得到的偏差小於0.000001時停止計算,並輸出PI的值及所需要計算的項數。


2、常式:

doubles=0;//面積
doublepi=0;//圓周率
doubled=200;//直徑(值越大圓周率越精確)
doubler=d/2;//半徑
for(inti=1;i<=d;i++){
for(intj=1;j<=d;j++){
if((i-r)*(i-r)+(j-r)*(j-r)<=r*r){
s++;
}
}
}
pi=s/(r*r);

⑶ C語言計算pi

在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
",pi);
}

⑷ 怎麼用C語言編程計算出π的值

一個足以讓你吐血的計算400位pi的C程序:
int a=10000, b, c=2800, d, e, f[2801], g;
main() {
for(; b-c; f[b++]=a/5);
for(; d=0,g=c*2; c -=14,printf("%.4d",e+d/a),e=d%a)
for(b=c; d+=f[b]*a,f[b]=d%--g,d/=g--,--b; d*=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=1;i<=n;i++)
{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);
}

⑸ 誰詳細解釋一下C語言求PI編程

函數的原理:
pi=1 - 1/2 + 1/4 - 1/6 + 1/8 - 1/10 + .....

無窮多項之和就等於pi,一般算到最後一項小於一定的數值即可,那就是精度,程序中的2e-6,當然也可以用1e-6或者1e-8等。

⑹ C語言編程計算出π的值 最好有三種方法!! 急求 好人一生平安啊

我只說說π是怎麼近似計算出來的,大一應該學過高數,可以知道:tan π/ 4 =1,從而π=4*arctan1,應用泰勒公式將arctan(x)展開,就可以得到

把這展開式展開,直到最後一項的絕對值小於1e-6為止。


下面是C語言遞歸實現:

#include<stdio.h>

#include<math.h>

void main()

{

float fuc(int n);

float s,pi;

for(int i=1;i<10000;i++)

{s=1.0/(2*i-1);

if(s<1e-6)

break;}

pi=fuc(i);

pi=pi*4;

printf ("pi=%10.6f ",pi);

}


float fuc(int n)

{

float pi;

if(n==1) pi=1;

else if(n%2==0)

pi=fuc(n-1)+(-1.0)/(2*n-1);

else pi=f(n-1)+1.0/(2*n-1);

return(pi);

}

程序運行結果pi=3.141498.


希望能明白明白π的實現原理,增進你的理解。