当前位置:首页 » 编程软件 » 编程体脂率

编程体脂率

发布时间: 2022-04-04 04:27:23

A. 编写Java程序,根据给定的身高和体重计算肥胖指数BMI,并输出相应的健康标准。BMI计算公式为:

MI计算公式为:

public double getBMI(double weight,double height){

return weight/(height*height);

}

public static void main(String[] arrs){

Scanner scanner=new Scanner(System.in);

System.out.println("请输入体重");

double weight=scanner.nextDouble();

System.out.println("请输入身高");

double height=scanner.nextDouble();

getBMI(weight,height);

}

相信很多人都有这样一种感觉:为什么相同身高相同体重的两个人,有人看起来瘦,有人看起来胖,或者是减肥的时候,明明体重没有下降,甚至还上升了,但是看起来却瘦下来了。

其实,这其中就是体脂率在起作用。有人过分追求减肥时的体重快速下降,但其实如果体脂率没小,只是体重下去了,也是虚的。

只有当体脂率变小,腰围等才会变小,视觉上才会看起来“瘦”,这体脂率,指的就是脂肪的重要占总体重的比例,当体脂率低,意味着身体的脂肪含量少,即使是相同体重的人,看起来也会比较瘦,这就是体脂率的意义。

如果按照概念来看,体脂率的计算公式就是:体脂率=(脂肪重量 ÷ 体重)×100%,通用的体脂率计算公式为:体脂率 =1.2×BMI+0.23× 年龄-5.4-10.8×性别(男为1,女为0),其中BM指的是体重指数,用体重除以身高的平方即可得到。

因此,按照公式就可以计算出自己的体脂率了,如此一来,就可以知道自己是“胖”还是“瘦”。有人就会提出疑问,是不是体脂率越低越好呢?当然不是。

B. C语言编程问题。

1.编程在一个已知字符串中查找最长单词,假定字符串中只含有字母和空格,空格用来分割不同单词!

方法一:

//VC++ 6.0 编译通过

#include
void main()
{
char str[]="hello world my name is xun yi cao !!";
char*p=str,*p1;
int max=0,count=0,i;
while(*p)
{
count=0;
while(*p==' ')p++;
while(*p!=' '&&*p)
{//一定要注意这里的判断 *p!=0 也要判断,不然到了最后一个单词时,它一直向后面加,直到碰见空格,所以会超界。
p++;
count++;
}
if(max<count)
{
max=count;
p1=p-count;
}
}
printf("the largest number is :%d \n",max);
printf("the largest word is : ");
while(*p1!=' '&&*p1) //这里也要判断*p1!='\0',因为如果最长的单词在字符串的末尾的话,如果不判断*p1!='\0',也会过界。
{
putchar(*p1);
p1++;
}
putchar('\n');
}

/*
求字符串中最长的单词。要注意的是:如果在一个循环A 里面还有循环B 的话。那么不仅在循环B里面要保证,数组不过界。
而且要要保证在循环A里面数组也不过界。就像上面的例子一样。现给出一个更容易理解的例子。
while(*p)
{
while(*p!=' '&&*p)
{
p++;
}
}
虽然外循环和内循环在循环条件上没有什么必然的联系,但是对于一个数组的指针而言(如果以变量下标的
形式来访问数组的话,下标的加减也要引起注意),它的加减也要引起注意,必须要保证不能过界。
*/

方法二:

//VC++ 6.0 编译通过。

#include
#include
void main()
{
char str[]=" I am a student";
char*p=str,Array[10][20]={0};
int i=0,j=0,max=0;
while(*p)
{
while(*p==' ')*p++;
while(*p&&*p!=' ')
{
Array[i][j++]=*p;
p++;
}
i++;j=0;
}
i=0;
max=strlen(Array[i]);
p=Array[i];
while(strlen(Array[i]))
{
if(max<strlen(Array[i]))
{
max=strlen(Array[i]);
p=Array[i];
}
i++;
}
printf("%d\n%s\n",max,p);
}

/*
求字符串中最长的单词(不能分辨含非字母字符的单词),采用的是二维数组的形式判断的。
定义了一个二维数组,它的每一个元素用来存放一个字符串(每个被分离后的单词)。
再判断最长的那个。

这中方法对比第一种方法来说,思路更清晰一些。但是缺点就是要分配一个二维的数组来存放被分离后的每个
单词,占用存储空间。
*/

2.编写实现任意十进制数,转换成r进制数(r在2到16之间)

转换为二进制:

//VC++ 6.0编译通过

#include
#include
void main()
{
int a,b[30],i;
scanf("%d",&a);
for(i=0;a!=0;i++)
{
b[i]=a%2;
a=a/2;
}
for(--i;i>=0;i--)
{
printf("%d",b[i]);
}
putchar('\n');
}

//关于二进制的转换,还可以用位移运算符。通过和某一个数如1相按位与,就得到它的二进
制最低位,在位移,再得到二进制最低位,依此类推。

转换为8进制:

/VC++ 6.0编译通过。

#include
#include
void main()
{
int a,b[20],i;
scanf("%d",&a);
for(i=0;a!=0;i++)
{
b[i]=a%8;
a=a/8;
}
for(--i;i>=0;i--)
{
printf("%d",b[i]);
}
putchar('\n');
}

/*
转换为8进制就没有16进制那么麻烦了,它不需要另外定义一个字符数组用来存放,进制的
所有基数了,而是直接输出来就可以了。而对与16进制还要存放他的基数。从0到F
*/

转换为16进制:

//VC++ 6.0 下编译通过

#include
#include
void main()
{
int a,b[20],i,base=16;
char X[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
scanf("%d",&a);
for(i=0;a!=0;i++)
{
b[i]=a%base;
a=a/base;
}
for(--i;i>=0;i--) //开始有一个 --i
{
int j=b[i];
printf("%c",X[j]);
}
printf("\n");
}

/*
一般把其它进制的数转换为十进制的数较容易,有一个现成的乘法公式供我们使用。
但把十进制的数转换为其它进制的数,则要用到除法。这题的思路是比较清晰的,应该是
解决这类问题的典型算法了。

而对于把十进制的数转换为二进制的数来说,除了用到除法外,还可用位运算。

这个问题主要是这两句话值得理解:

b[i]=a%base;
a=a/base;
我们一般是用这两句循环使用来得到一个整数的各位的数字,这也恰巧说明了,我们得到
一个整数的各个位数所用到的方法,正是把一个十进制的数转换为一个 "十进制" 数的算法
也就是我们得到一个十进制数的各个位的数字的过程,实际上就是求把他转换为一个十进制
的数字的过程(虽然这里本身没必要在转换,因为本身它就已经是一个十进制数了)。用同样
的道理可以推算把十进制数转换为其他进制数的过程,和这个是类似的。

然后将后得到的结果先输出,而先取余数得到的结果则在数字的最后面,在低位。

*/

通用解决方案:

#include
#include
void main()
{
int a[10]={0,1,2,9,10,5,12,7,8,15};
for(int i=9;i>=0;i--)
{
if(a[i]>=10)
switch(a[i])
{
case 10: printf("%c",'A');break;
case 11: printf("%c",'B');break;
case 12: printf("%c",'C');break;
case 13: printf("%c",'D');break;
case 14: printf("%c",'E');break;
case 15: printf("%c",'F');break;
}
else
printf("%d",a[i]);
}
}

/*
其实进制转换的算法我们都知道,就是用我们要转换的那个数,对进制的基数(如果是16进制)
进行取余,把取余的结果保存在一个数组里面,再对他取整重新赋值,也就是丢掉余数部分,
相当于取上一步的商,再取余,再取整。如此循环,直到为0。

其实上面的算法,只要我们想起把一个十进制的数转换为二进制的数的计算方法,就不难理解,
因为都是相通的。

现在关键是,如果我的这些事情都做好了,也就是余数都放在一个数组里了,现在要做的就是
把数组逆序输出就ok了。那么如果是二进制或八进制,我们只要直接输出就可以了,但是如果是
一个十六进制的话,就不能这样了,也就是如果数组里面有一个元素是14,那么我就不能原样输出
了,此时必须输出E,因为E就是十六进制里面的基数,而且也是与十进制的14相对应的。但是如果
是一个二进制或者是一个八进制的话,就可以直接输出,因为数组里面的数都是0,1(对二进制)
或者(0....8),这些数就是二进制和八进制的基数。

所以这里要面临的问题就是,在输出一个整数的时候,如果这个整数满足某一条件,就输出什么字
符的问题,例如:如果这个整数等于14则输出'E'字符。

当然我们可以用 if..else 语句来判断,对于十六进制的数特殊的字符也就只有A,B,C,D,E,F六个
用 if...else 来判断也不算太烦琐。当然我们还可以用 switch 来判断,这样更加有条理。代码
也更清晰。

当然这是对于16进制的数来说的,我们可以这样判断,但是如果实际生活中遇到的问题和这个有点
类似,而且字母有多的话,用条件判断或switch就太烦琐了,代码也不直观,还容易出错。

那么这时我们可以在定义一个字符数组,分别放我们要输出的字符,如果有以下对应的关系:

10 A
11 B
12 C
13 D
14 E
15 F
16 G
17 H
18 I
19 J

也就是说在数组a里面放的是数字,在数组b里面放的是字符,要求数组a里面的数字是10的时候,输
出'A',而不是输出10,依次类推(看上面的对应关系),当然我上面的对应关系都是顺序的,其实也
可以不是顺序的,对于数字和字符都可以是乱的,当然这要看实际遇到的问题是什么样的了。如果
对上面的问题还用if...else来判断的话,那未免太烦琐。所以我们定义一个字符数组来专门存放
字符。那么怎么让数字和字符联系起来呢,怎么让a[i]的值是10的时候就输出'A'而是14的时候就输
出'E'呢,在这里我们可以这样定义b数组:

char b[30]={0};
b[10]='A';
b[11]='B';
b[12]='C';
b[13]='D';
b[14]='E';
...
b[19]='J';

这样也就是说当a[i]元素的值是10时,就输出b[10],是11就输出b[11];这样就和数字对应起来
了。我们可以这样用:

int t=a[i];
printf("%c",b[t]); a[i]的值是多少,我们就输出b[多少]

但对于上面举的例子来说,可以这样:

if(a[i]>=10&&a[i]<=19) //对应关系是连续的,才可以这样判断
{
int t=a[i];
printf("%c",b[t]);
}
else
{
printf("%d",a[i]);//如果不属于定义的对应的特殊字符,就原样输出。
}

当然了,上面的是对应的连续的情况,对与10进制与二进制,8进制,16进制之间的转换,都是连续的情况。
如果对应的是不连续的情况,那有该怎么办呢:

20 'A'
25 'B'
30 'D'
50 'G'
53 'H'
58 'C'
100 'Z'
200 'W'

对于上面的情况,是一点规律性也没有的,而且如果为了这几个数就去定义一个200个元素的数组,实在是
有点划不来。所以如果是上面这种情况,就没有比较好的办法了。只用用判断语句了,当然如果有20多个
字符的对应关系的话,判断语句也是不合适的,那么就没有比较好的办法了。还要进一步探索....

*/

这些都是我在考计算机等级考试碰到过的题目哦,算法都是相当典型的,有的是书上看到的,有的是自己扩展的。还是要自己认真哦。。。

由于文字太多第三题提交不上来了哦。。不好意思。。。

C. 圆周率是怎样算出来的

祖冲之和圆周率

月球背面有一座环形山,被称为“祖冲之环形山”,它是以最早精确地计算出圆周率的中国科学家祖冲之的名字命名的。

祖冲之(公元429-500年),中国南北朝时着名的数学家、天文学家和机械制造家。他从小聪明好学,爱好自然科学、文学和哲学,经过刻苦的学习和钻研,他终于成为了一位享誉世界的科学家。

祖冲之在数学方面的成就是震惊世界的。远在一千五百年以前,祖冲之就计算出了准确的圆周率。求算圆周率的值是数学中一个非学重要也是非常困难的研究课题。中国古代许多数学家都为研究这个课题付出了心血,并取得了喜人的成果。祖冲之在前人研究的基础上,继续进行了深入而系统的研究,经过一千次以上的计算,他计算出圆周率在3.1415926和3.1415927之间,成为世界上最早把圆周率推算出七位数字的科学家。祖冲之还提出圆周率的近似值为355/113,称为“密率”,把数学中关于圆周率的计算推进到一个新阶段,成为当时世界上最精确的圆周率。日本数学家称它为“祖率”。直到一千年以后,西方的数学家才达到和超过了祖冲之的成就。

祖冲之是一位博学多才的科学家,除了数学以外,对于天文历法和各种机械也有研究。他曾经设计和制造了计时用的漏壶,还有指南车、水推磨和千里船等。祖冲之的巨大成就,使他成为一位世界知名的科学家。

D. 圆周率到底怎么算啊

周率是数学上常用到的一个值....,约等于3.142592625.

E. 本人想练腹肌,120斤,身高一米75,有点肚子,不是很大,本人每天做俯卧撑100个,

按照下面方法练,大概3个月会有明显效果。自己别瞎琢磨。
锻炼腹肌只需要一两个动作就足够了。练腹肌的关键在于动作的强度,而不是次数越多越好。比如仰卧起坐能一次性做200个,也不如你两头起只能做10个的效果好。因为能做200个以上是练耐力,对肌纤维增粗不明显。健美理论中用RM表示某个负荷量能连续做的最高重复次数。比如,练习者对一个重量只能连续举起5次,则该重量就是5RM。6-10RM的负荷训练能使肌肉粗大,力量速度提高,但耐力增长不明显。
给你四个个动作:仰卧起坐、仰卧举腿、两头起、悬垂举腿(强度依次增加)。如果仰卧起坐可以做10到20个,那么就做仰卧举腿;仰卧举腿能做10到20个,就做两头起。以此类推。一周练三次,每次一个动作练3组左右即可。
另外,体脂率高于百分之十以上脂肪就会盖住练出的腹肌。相扑运动没有肌肉就是因为如此。如果楼主有小肚子的话,还需要慢跑40分钟左右减脂。一周3到5次左右。如果无法一次性跑40分钟,中间可以快走一段时间。

F. 圆周率是怎样计算出的、

圆周率是怎样计算的
一、历史
祖冲之与圆周率
古今中外,许多人致力于圆周率的研究与计算。为了计算出圆周率的越来越好的近似值,一代代的数学家为这个神秘的数贡献了无数的时间与心血。 十九世纪前,圆周率的计算进展相当缓慢,十九世纪后,计算圆周率的世界纪录频频创新。整个十九世纪,可以说是圆周率的手工计算量最大的世纪。 进入二十世纪,随着计算机的发明,圆周率的计算有了突飞猛进。借助于超级计算机,人们已经得到了圆周率的2061亿位精度。 历史上最马拉松式的计算,其一是德国的Ludolph Van Ceulen,他几乎耗尽了一生的时间,计算到圆的内接正262边形,于1609年得到了圆周率的35位精度值,以至于圆周率在德国被称为Ludolph数;其二是英国的威廉·山克斯,他耗费了15年的光阴,在1874年算出了圆周率的小数点后707位,并将其刻在了墓碑上作为一生的荣誉。可惜,后人发现,他从第528位开始就算错了。 把圆周率的数值算得这么精确,实际意义并不大。现代科技领域使用的圆周率值,有十几位已经足够了。如果用鲁道夫算出的35位精度的圆周率值,来计算一个能把太阳系包起来的一个圆的周长,误差还不到质子直径的百万分之一。以前的人计算圆周率,是要探究圆周率是否循环小数。自从1761年兰伯特证明了圆周率是无理数,1882年林德曼证明了圆周率是超越数后,圆周率的神秘面纱就被揭开了。 现在的人计算圆周率,多数是为了验证计算机的计算能力,还有,就是为了兴趣。
二、计算方法
圆周率
古人计算圆周率,一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长。阿基米德用正96边形得到圆周率小数点后3位的精度;刘徽用正3072边形得到5位精度;鲁道夫用正262边形得到了35位精度。这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。下面挑选一些经典的常用公式加以介绍。除了这些经典公式外,还有很多其它公式和由这些经典公式衍生出来的公式,就不一一列举了。 1、马青公式 π=16arctan1/5-4arctan1/239 这个公式由英国天文学教授约翰·马青于1706年发现。他利用这个公式计算到了100位的圆周率。马青公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。 还有很多类似于马青公式的反正切公式。在所有这些公式中,马青公式似乎是最快的了。虽然如此,如果要计算更多的位数,比如几千万位,马青公式就力不从心了。 2、拉马努金公式 1914年,印度天才数学家拉马努金在他的论文里发表了一系列共14条圆周率的计算公式。这个公式每计算一项可以得到8位的十进制精度。1985年Gosper用这个公式计算到了圆周率的17,500,000位。 1989年,大卫·丘德诺夫斯基和格雷高里·丘德诺夫斯基兄弟将拉马努金公式改良,这个公式被称为丘德诺夫斯基公式,每计算一项可以得到15位的十进制精度。1994年丘德诺夫斯基兄弟利用这个公式计算到了4,044,000,000位。丘德诺夫斯基公式的另一个更方便于计算机编程的形式是: 3、AGM(Arithmetic-Geometric Mean)算法 高斯-勒让德公式: 圆周率
这个公式每迭代一次将得到双倍的十进制精度,比如要计算100万位,迭代20次就够了。1999年9月,日本的高桥大介和金田康正用这个算法计算到了圆周率的206,158,430,000位,创出新的世界纪录。 4、波尔文四次迭代式: 这个公式由乔纳森·波尔文和彼得·波尔文于1985年发表的。 5、ley-borwein-plouffe算法 这个公式简称BBP公式,由David Bailey, Peter Borwein和Simon Plouffe于1995年共同发 丘德诺夫斯基公式
表。它打破了传统的圆周率的算法,可以计算圆周率的任意第n位,而不用计算前面的n-1位。这为圆周率的分布式计算提供了可行性。 6.丘德诺夫斯基公式 这是由丘德诺夫斯基兄弟发现的,十分适合计算机编程,是目前计算机使用较快的一个公式。以下是这个公式的一个简化版本: 7.莱布尼茨公式 π/4=1-1/3+1/5-1/7+1/9-1/11+……

G. 用C语言编写程序:输入体重和身高,输出体重指数BMI

例子如下:

知识扩展:

BMI指数(即身体质量指数,简称体质指数又称体重,英文为Body Mass Index,简称BMI),是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。主要用于统计用途,当我们需要比较及分析一个人的体重对于不同高度的人所带来的健康影响时,BMI值是一个中立而可靠的指标。

BMI值原来的设计是一个用于公众健康研究的统计工具。当我们需要知道肥胖是否对某一疾病的致病原因时,我们可以把病人的身高及体重换算成BMI值,再找出其数值及病发率是否有线性关联。不过,随着科技进步,现时BMI值只是一个参考值。要真正量度病人是否肥胖,还需要利用微电力量度病人的阻抗,以推断病者的脂肪厚度。因此,BMI的角色也慢慢改变,从医学上的用途,变为一般大众的纤体指标。

H. 圆周率是怎样算出来的

【圆周率的计算】
古今中外,许多人致力于圆周率的研究与计算。为了计算出圆周率的越来越好的近似值,一代代的数学家为这个神秘的数贡献了无数的时间与心血。
十九世纪前,圆周率的计算进展相当缓慢,十九世纪后,计算圆周率的世界纪录频频创新。整个十九世纪,可以说是圆周率的手工计算量最大的世纪。
进入二十世纪,随着计算机的发明,圆周率的计算有了突飞猛进。借助于超级计算机,人们已经得到了圆周率的2061亿位精度。
历史上最马拉松式的计算,其一是德国的Ludolph Van Ceulen,他几乎耗尽了一生的时间,计算到圆的内接正262边形,于1609年得到了圆周率的35位精度值,以至于圆周率在德国被称为Ludolph数;其二是英国的威廉·山克斯,他耗费了15年的光阴,在1874年算出了圆周率的小数点后707位,并将其刻在了墓碑上作为一生的荣誉。可惜,后人发现,他从第528位开始就算错了。
把圆周率的数值算得这么精确,实际意义并不大。现代科技领域使用的圆周率值,有十几位已经足够了。如果用鲁道夫算出的35位精度的圆周率值,来计算一个能把太阳系包起来的一个圆的周长,误差还不到质子直径的百万分之一。以前的人计算圆周率,是要探究圆周率是否循环小数。自从1761年兰伯特证明了圆周率是无理数,1882年林德曼证明了圆周率是超越数后,圆周率的神秘面纱就被揭开了。
现在的人计算圆周率, 多数是为了验证计算机的计算能力,还有,就是为了兴趣。
[编辑本段]【圆周率的计算方法】
古人计算圆周率,一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长。阿基米德用正96边形得到圆周率小数点后3位的精度;刘徽用正3072边形得到5位精度;鲁道夫用正262边形得到了35位精度。这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。下面挑选一些经典的常用公式加以介绍。除了这些经典公式外,还有很多其它公式和由这些经典公式衍生出来的公式,就不一一列举了。
1、马青公式
π=16arctan1/5-4arctan1/239
这个公式由英国天文学教授约翰·马青于1706年发现。他利用这个公式计算到了100位的圆周率。马青公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。
还有很多类似于马青公式的反正切公式。在所有这些公式中,马青公式似乎是最快的了。虽然如此,如果要计算更多的位数,比如几千万位,马青公式就力不从心了。
2、拉马努金公式
1914年,印度天才数学家拉马努金在他的论文里发表了一系列共14条圆周率的计算公式。这个公式每计算一项可以得到8位的十进制精度。1985年Gosper用这个公式计算到了圆周率的17,500,000位。
1989年,大卫·丘德诺夫斯基和格雷高里·丘德诺夫斯基兄弟将拉马努金公式改良,这个公式被称为丘德诺夫斯基公式,每计算一项可以得到15位的十进制精度。1994年丘德诺夫斯基兄弟利用这个公式计算到了4,044,000,000位。丘德诺夫斯基公式的另一个更方便于计算机编程的形式是:
3、AGM(Arithmetic-Geometric Mean)算法
高斯-勒让德公式:
这个公式每迭代一次将得到双倍的十进制精度,比如要计算100万位,迭代20次就够了。1999年9月,日本的高桥大介和金田康正用这个算法计算到了圆周率的206,158,430,000位,创出新的世界纪录。
4、波尔文四次迭代式:
这个公式由乔纳森·波尔文和彼得·波尔文于1985年发表,它四次收敛于圆周率。
5、ley-borwein-plouffe算法
这个公式简称BBP公式,由David Bailey, Peter Borwein和Simon Plouffe于1995年共同发表。它打破了传统的圆周率的算法,可以计算圆周率的任意第n位,而不用计算前面的n-1位。这为圆周率的分布式计算提供了可行性。
6、丘德诺夫斯基公式
这是由丘德诺夫斯基兄弟发现的,十分适合计算机编程,是目前计算机使用较快的一个公式。以下是这个公式的一个简化版本:
丘德诺夫斯基公式

I. 圆周率是怎么计算出来的

古人计算圆周率,一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长。阿基米德用正96边形得到圆周率小数点后3位的精度;刘徽用正3072边形得到5位精度;鲁道夫用正262边形得到了35位精度。这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。下面挑选一些经典的常用公式加以介绍。除了这些经典公式外,还有很多其它公式和由这些经典公式衍生出来的公式,就不一一列举了。

1、马青公式

π=16arctan1/5-4arctan1/239

这个公式由英国天文学教授约翰·马青于1706年发现。他利用这个公式计算到了100位的圆周率。马青公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。

还有很多类似于马青公式的反正切公式。在所有这些公式中,马青公式似乎是最快的了。虽然如此,如果要计算更多的位数,比如几千万位,马青公式就力不从心了。

2、拉马努金公式

1914年,印度天才数学家拉马努金在他的论文里发表了一系列共14条圆周率的计算公式。这个公式每计算一项可以得到8位的十进制精度。1985年Gosper用这个公式计算到了圆周率的17,500,000位。

1989年,大卫·丘德诺夫斯基和格雷高里·丘德诺夫斯基兄弟将拉马努金公式改良,这个公式被称为丘德诺夫斯基公式,每计算一项可以得到15位的十进制精度。1994年丘德诺夫斯基兄弟利用这个公式计算到了4,044,000,000位。丘德诺夫斯基公式的另一个更方便于计算机编程的形式是:

3、AGM(Arithmetic-GeometricMean)算法

高斯-勒让德公式:

这个公式每迭代一次将得到双倍的十进制精度,比如要计算100万位,迭代20次就够了。1999年9月,日本的高桥大介和金田康正用这个算法计算到了圆周率的206,158,430,000位,创出新的世界纪录。

4、波尔文四次迭代式:

这个公式由乔纳森·波尔文和彼得·波尔文于1985年发表的。

5、ley-borwein-plouffe算法

这个公式简称BBP公式,由DavidBailey,PeterBorwein和SimonPlouffe于1995年共同发表。它打破了传统的圆周率的算法,可以计算圆周率的任意第n位,而不用计算前面的n-1位。这为圆周率的分布式计算提供了可行性。

6、丘德诺夫斯基公式

这是由丘德诺夫斯基兄弟发现的,十分适合计算机编程,是目前计算机使用较快的一个公式。以下是这个公式的一个简化版本:

丘德诺夫斯基公式

J. 圆周率怎么算出来的

圆周率是用圆的周长除以它的直径计算出来的。

π是个无理数,即不可表达成两个整数之比,是由瑞士科学家约翰·海因里希·兰伯特于1761年证明的。 1882年,林德曼(Ferdinand von Lindemann)更证明了π是超越数,即π不可能是任何整系数多项式的根。

圆周率的超越性否定了化圆为方这古老尺规作图问题的可能性,因所有尺规作图只能得出代数数,而超越数不是代数数。

(10)编程体脂率扩展阅读

2011年,国际数学协会正式宣布,将每年的3月14日设为国际数学节,来源则是中国古代数学家祖冲之的圆周率。

国际圆周率日可以追溯至1988年3月14日,旧金山科学博物馆的物理学家Larry Shaw,他组织博物馆的员工和参与者围绕博物馆纪念碑做3又1/7圈(22/7,π的近似值之一)的圆周运动,并一起吃水果派。之后,旧金山科学博物馆继承了这个传统,在每年的这一天都举办庆祝活动。

2009年,美国众议院正式通过一项无约束力决议,将每年的3月14日设定为“圆周率日”。

决议认为,“鉴于数学和自然科学是教育当中有趣而不可或缺的一部分,而学习有关π的知识是一教孩子几何、吸引他们学习自然科学和数学的迷人方式……π约等于3.14,因此3月14日是纪念圆周率日最合适的日子。”

热点内容
python递归创建目录 发布:2024-05-02 21:02:38 浏览:280
数据库分离与附加 发布:2024-05-02 20:56:59 浏览:39
搭建我的世界java服务器详细篇 发布:2024-05-02 20:56:59 浏览:941
string函数java 发布:2024-05-02 20:36:49 浏览:801
phplinux服务器 发布:2024-05-02 20:30:23 浏览:754
安卓在哪里安装网易官方手游 发布:2024-05-02 20:15:07 浏览:409
qq宠物的文件夹 发布:2024-05-02 20:13:46 浏览:366
做脚本挂 发布:2024-05-02 19:09:14 浏览:931
打王者开最高配置哪个手机好 发布:2024-05-02 19:08:31 浏览:351
python字典使用 发布:2024-05-02 19:01:14 浏览:134