派法编程
⑴ c语言函数中派怎么表示
C语言函数中π一般用宏进行定义: #define PI 3.14 因为π是无限不循环小数。
⑵ 用C语言如何编程求出"派“的值(3.141592654......)
#include <stdio.h>
#include <math.h>
int main(int argc, char* argv[])
{
int s;
float n,t,pi;
t = 1.0;
pi = 0;
n=1.0;
s = 1;
while(fabs(t) >= 1e-6)
{
pi = pi + t;
n = n + 2.0f;
s = -s;
t = s / n;
}
pi = pi * 4;
printf("pi=%f\n",pi);
return 0;
}
⑶ MATLAB如何编程二分之π,急急急
MATLAB如何编程二分之π?题主的问题实际上数值连乘计算问题,该问题可以这样来解决。
方法一,用循环语句来实现。
1、先自定义函数,func1(n)。即
function s=func1(n)
s=1;
for i=1:n
s=s*((2*i)*(2*i))/((2*i-1)*(2*i+1));
end
2、给出n值,再调用func1(n)
方法二,用prod函数来实现。
1、先自定义函数,func2(n)。即
function s=func2(n)
k=1:n;
A=(2*k).*(2*k)./((2*k-1).*(2*k+1));
s=prod(A);
2、给出n值,再调用func2(n)
最后,建立主程序,即
n=100; %给出n值
disp('用循环语句来实现')
s=func1(n) %用循环语句来计算
disp('用prod函数来实现')
s=func2(n) %用prod函数来计算
disp('精确解π/2')
s=pi/2;
disp(s)
执行上述代码,可以得到如下结果,结果表明当n值越大,其积越接近π/2值
⑷ c语言编程求派的近似值,改错题。应该结果是3.14159的可是运行出来都是2.00000啊魂淡!跪求大神指点!
修改后的代码如下:
#include <stdio.h>
#include <stdlib.h>
double fact(int n);
double multi(int n);
int main(void)
{
int i;
double sum, item=10; // 初始时为item赋一个较大的值,不然第一次循环就是非法使用item
sum = 1;
for(i = 1;item >= 1e-6; i++)
{
item = fact(i) / multi(2*i+1);
sum = sum + item;
}
printf("PI=%0.5lf\n", sum * 2);
system("pause");
return 0;
}
double fact(int n) // 返回值为double
{
int i;
double res;
res = 1;
for(i = 1; i <= n; i++)res = res * i;
return res;
}
double multi(int n) // 返回值为double
{
int i;
double res;
res = 1;
for(i = 3; i <= n; i = i+2)res = res * i;
return res;
}
⑸ 派(pi)[数学]
古人计算圆周率,一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长。Archimedes用正96边形得到圆周率小数点后3位的精度;刘徽用正3072边形得到5位精度;Ludolph Van Ceulen用正262边形得到了35位精度。这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。下面挑选一些经典的常用公式加以介绍。除了这些经典公式外,还有很多其他公式和由这些经典公式衍生出来的公式,就不一一列举了。
Machin公式 这个公式由英国天文学教授John Machin于1706年发现。他利用这个公式计算到了100位的圆周率。Machin公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。
Machin.c 源程序 还有很多类似于Machin公式的反正切公式。在所有这些公式中,Machin公式似乎是最快的了。虽然如此,如果要计算更多的位数,比如几千万位,Machin公式就力不从心了。下面介绍的算法,在PC机上计算大约一天时间,就可以得到圆周率的过亿位的精度。这些算法用程序实现起来比较复杂。因为计算过程中涉及两个大数的乘除运算,要用FFT(Fast Fourier Transform)算法。FFT可以将两个大数的乘除运算时间由O(n2)缩短为O(nlog(n))。
Ramanujan公式 1914年,印度数学家Srinivasa Ramanujan在他的论文里发表了一系列共14条圆周率的计算公式,这是其中之一。这个公式每计算一项可以得到8位的十进制精度。1985年Gosper用这个公式计算到了圆周率的17,500,000位。 1989年,David & Gregory Chudnovsky兄弟将Ramanujan公式改良成为: 这个公式被称为Chudnovsky公式,每计算一项可以得到15位的十进制精度。1994年Chudnovsky兄弟利用这个公式计算到了4,044,000,000位。Chudnovsky公式的另一个更方便于计算机编程的形式是:AGM(Arithmetic-Geometric Mean)算法 Gauss-Legendre公式: 初值:重复计算: 最后计算: 这个公式每迭代一次将得到双倍的十进制精度,比如要计算100万位,迭代20次就够了。1999年9月Takahashi和Kanada用这个算法计算到了圆周率的206,158,430,000位,创出新的世界纪录。 Borwein四次迭代式: 初值:重复计算: 最后计算:这个公式由Jonathan Borwein和Peter Borwein于1985年发表,它四次收敛于圆周率。
Bailey-Borwein-Plouffe算法 这个公式简称BBP公式,由David Bailey, Peter Borwein和Simon Plouffe于1995年共同发表。它打破了传统的圆周率的算法,可以计算圆周率的任意第n位,而不用计算前面的n-1位。这为圆周率的分布式计算提供了可行性。1997年,Fabrice Bellard找到了一个比BBP快40%的公式: 3.1415926<3.1415927
⑹ python3 树莓派编程怎么写
1、确认好你的需求
2、开始编程
举例:
目的:用GPIO口控制LED灯亮灭
1、了解各个引脚图:
2、接线,把LED接到对应的GPIO口上
3、确认使用的python库,比如:RPi.GPIO (了解使用方法)
4、代码编写&运行
⑺ ∏(派)的精确表达是什么
1、 Machin公式
http://www.pep.com.cn/images/200503/pic_247046.gif
http://www.pep.com.cn/images/200503/pic_247047.gif
这个公式由英国天文学教授John Machin于1706年发现。他利用这个公式计算到了100位的圆周率。Machin公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。
Machin.c 源程序
还有很多类似于Machin公式的反正切公式。在所有这些公式中,Machin公式似乎是最快的了。虽然如此,如果要计算更多的位数,比如几千万位,Machin公式就力不从心了。下面介绍的算法,在PC机上计算大约一天时间,就可以得到圆周率的过亿位的精度。这些算法用程序实现起来比较复杂。因为计算过程中涉及两个大数的乘除运算,要用FFT(Fast Fourier Transform)算法。FFT可以将两个大数的乘除运算时间由O(n2)缩短为O(nlog(n))。
2、 Ramanujan公式
http://www.pep.com.cn/images/200503/pic_247048.gif
1914年,印度数学家Srinivasa Ramanujan在他的论文里发表了一系列共14条圆周率的计算公式,这是其中之一。这个公式每计算一项可以得到8位的十进制精度。1985年Gosper用这个公式计算到了圆周率的17,500,000位。
1989年,David & Gregory Chudnovsky兄弟将Ramanujan公式改良成为:
http://www.pep.com.cn/images/200503/pic_247049.gif
这个公式被称为Chudnovsky公式,每计算一项可以得到15位的十进制精度。1994年Chudnovsky兄弟利用这个公式计算到了4,044,000,000位。Chudnovsky公式的另一个更方便于计算机编程的形式是:
http://www.pep.com.cn/images/200503/pic_247050.gif
3、AGM(Arithmetic-Geometric Mean)算法
Gauss-Legendre公式:
初值:http://www.pep.com.cn/images/200503/pic_247051.gif
重复计算:http://www.pep.com.cn/images/200503/pic_247052.gif
最后计算:http://www.pep.com.cn/images/200503/pic_247053.gif
这个公式每迭代一次将得到双倍的十进制精度,比如要计算100万位,迭代20次就够了。1999年9月Takahashi和Kanada用这个算法计算到了圆周率的206,158,430,000位,创出新的世界纪录。
4、Borwein四次迭代式:
初值:http://www.pep.com.cn/images/200503/pic_247054.gif
重复计算: http://www.pep.com.cn/images/200503/pic_247055.gif
http://www.pep.com.cn/images/200503/pic_247056.gif
最后计算:http://www.pep.com.cn/images/200503/pic_247057.gif
这个公式由Jonathan Borwein和Peter Borwein于1985年发表,它四次收敛于圆周率。
5、 Bailey-Borwein-Plouffe算法
http://www.pep.com.cn/images/200503/pic_247058.gif
这个公式简称BBP公式,由David Bailey, Peter Borwein和Simon Plouffe于1995年共同发表。它打破了传统的圆周率的算法,可以计算圆周率的任意第n位,而不用计算前面的n-1位。这为圆周率的分布式计算提供了可行性。1997年,Fabrice Bellard找到了一个比BBP快40%的公式:
⑻ 用C语言编个程序,求π(派)
利用“正多边形逼近”的方法求出π的近似值
*程序说明与注释
#include<stdio.h>
#include<math.h>
int main()
{
double e=0.1,b=0.5,c,d;
long int i; /*i: 正多边形边数*/
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("pai=%.15lf\n",2*i*b); /*输出π值和正多边形的边数*/
printf("The number of edges of required polygon:%ld\n",i);
}
*问题分析与算法设计
利用“正多边形逼近”的方法求出π值在很早以前就存在,我们的先人祖冲之就是用这种方法在世界上第一个得到精确度达小数点后第6位的π值的。
利用圆内接正六边形边长等于半径的特点将边数翻番,作出正十二边形,求出边长,重复这一过程,就可获得所需精度的π的近似值。
假设单位圆内接多边形的边长为2b,边数为i,则边数加倍后新的正多边形的边长为:
x=√——————
2-2*√———
1-b*b
——————
2
周长为:
y=2 * i * x i:为加倍前的正多边形的边数
⑼ 为什么计算机能算出 π (派)
首先关于计算PI (就是圆周率了,那个偶不知道怎么打),在高数里是有个精确的计算公式,现在我实在没办法回想起来具体的形式了,但是是一个无穷可计算形的式子,计算机能够计算出PI的值就是通过这个式的。 其实计算机干的很多事情都是在之前有过可行性证明的,就像想算PI一样,事先要有一个关于PI的计算方法,然后通过C或者其他语言编程实现。 回头我想到那个公式给你贴上,不是很复杂。