编写程序:计算π的近似值,π的计算公式为
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写程序:计算π的近似值,π的计算公式为相关的知识,希望对你有一定的参考价值。
π=2×(2×2/1×3)×(4×4/3×5)×(6×6/5×7)×……[2n×2n/(2n-1)×(2n+1)]注:分别输出当 n 为10、100、1000时的计算结果,n值由键盘输入。问题补充: #include<stdio.h>main() int n,i,t; float sum; printf("请输入n的值\n"); scanf("%d",&n); sum=2; i=1; t=1; while(i<n) t=t*(2*i)*(2*i)/(2*i-1)*(2*i+1); sum=sum*t; i=i+1; printf("π的值=%f\n",sum);这个程序计算出来的值为什么不对呀!!π的值离3.1415926差很远!!
#include<stdio.h>
main()
int n,i; double t,
sum;/*1*/
printf("请输入n的值\\n");
scanf("%d",&n);
sum=2; i=1; t=2;/*2*/
while(i<n) t=t*(2*i)*(2*i)/(2*i-1)/(2*i+1);
/*3*/ // sum=sum*t; i=i+1;
printf("π的值=%f\\n",t);/*4*/
或。
写一个Java程序来实现蒙特卡洛法求π的近似值:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class MonteCarloPi
public static void main(String[] args) throws Exception
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("How many darts shoud I toss at the board?\\n");
String s = br.readLine();
int numberOfDarts = Integer.parseInt(s.trim());
double radius = 1.0;
Dartboard d = new Dartboard(radius);
for(int i=1; i<=numberOfDarts; i++)
Toss t = Toss.getRandom(radius);
d.strike(t);
double fractionIn = d.getFractionIn();
double pi = 4.0 * fractionIn;
System.out.println("Pi is approximately "+pi);
class Dartboard
private double radius;
private int insideCircle, outsideCircle;
public Dartboard(double radius)
this.radius = radius;
insideCircle = 0;
outsideCircle = 0;
public void strike(Toss toss)
double x = toss.getX();
double y = toss.getY();
if(Math.sqrt(x*x + y*y) < radius)
insideCircle++;
else
outsideCircle++;
public double getFractionIn()
double total = (double) (insideCircle + outsideCircle);
return (double) insideCircle/total;
class Toss
private double x,y;
public Toss(double x, double y)
this.x = x;
this.y = y;
public double getX()return x;
public double getY()return y;
public static Toss getRandom(double radius)
double x,y;
double size = Math.random();
double sign = Math.random();
size = size * radius;
if(sign > 0.5)
x = size;
else
x = -size;
size = Math.random();
sign = Math.random();
size = size * radius;
if(sign > 0.5)
y = size;
else
y = -size;
return new Toss(x,y);
扩展资料:
C语言:用循环结构分别编写程序
#include
void main()
\\x09int n=1;
\\x09float temp;
\\x09float sum=0;
\\x09do
\\x09
\\x09\\x09temp=(float)1/(2*n-1);
\\x09\\x09if(n%2==1)
\\x09\\x09\\x09sum+=temp;
\\x09\\x09else
\\x09\\x09\\x09sum-=temp;
\\x09\\x09n++;
\\x09while(temp>=0.000001);
\\x09printf("Pi=%f\\n",sum*4);
参考技术A 公式没有问题,每项到最后会趋向1的,但是你的代码里错了好几处!现在这个代码运行没有问题了,你看看: #include<stdio.h>main()int n,i;
float sum;
printf("请输入n的值\n");
scanf("%d",&n);
sum=2;
i=1;
while(i<n)
// 你的t是没有用的,而且你用了int肯定完蛋了,另外注意除法!!!
sum=sum*(2*i)*(2*i)/(2*i-1)/(2*i+1); i=i+1;
printf("π的值=%f\n",sum);
参考技术B 这个公式有问题啊,我怎么看是非收敛的啊?越来越大啊
圆周率是如何计算的
参考技术A 圆周率是数学中的重要常数之一,它是指表示圆的周长与直径比值的数学常数,用希腊字母π表示。π也等于圆形之面积与半径平方之比,近似值约等于3.14159265359,是精确计算圆周长、圆面积、球体积等几何形状的关键值。那么圆周率是怎么计算出来的呢?下面与小编一起来了解一下吧!关于π最早的文字记载来自公元前2000年前后的古巴比伦人,它们认为π=3.125,而古埃及人使用π=3.1605。中国古籍里记载有“圆径一而周三”,即π=3,这也是《圣经》旧约中所记载的π值。在古印度耆那教的经典中,可以找到π≈3.1622的说法。这些早期的π值大体都是通过测量圆周长,再测量圆的直径,相除得到的估计值。由于在当时,圆周长无法准确测量出来,想要通过估算法得到精确的π值当然也不可能。
无独有偶,中国三国时期的数学家刘徽,在对《九章算术》作注时,在公元264年给出了类似的算法,并称其为割圆术。所不同的是,刘徽是通过用圆内接正多边形的面积来逐步逼近圆面积来计算圆周率的。约公元480年,南北朝时期的大科学家祖冲之就用割圆术算出3.1415926<π<3.1415927,这个π值已经准确到7位小数,创造了圆周率计算的世界纪录。
17世纪之前,计算圆周率基本上都是用上述几何方法(割圆术),德国的鲁道夫·范·科伊伦花费大半生时间,计算了正262边形的周长,于1610年将π值计算到小数点后35位。德国人因此将圆周率称为“鲁道夫数”。
关于π值的研究,革命性的变革出现在17世纪发明微积分时,微积分和幂级数展开的结合导致了用无穷级数来计算π值的分析方法,这就抛开了计算繁杂的割圆术。那些微积分的先驱如帕斯卡、牛顿、莱布尼茨等都对π值的计算做出了贡献。1706年,英国数学家梅钦得出了现今以其名字命名的公式,给出了π值的第一个快速算法。梅钦因此把π值计算到了小数点后100位。以后又发现了许多类似的公式,π的计算精度也越来越高。1874年,英国的谢克斯花15年时间将π计算到了小数点后707位,这是人工计算π值的最高纪录,被记录在巴黎发现宫的π大厅。可惜后来发现其结果从528位开始出错了。
电子计算机出现后,人们开始利用它来计算圆周率π的数值,从此,π的数值长度以惊人的速度扩展着:1949年算至小数点后2037位,1973年算至100万位,1983年算至1000万位,1987年算至1亿位,2002年算至1万亿位,至2011年,已算至小数点后10万亿位。
人类对π的认识过程,也从一个侧面反映了数学发展的历程。在人类历史上,从没有对一个数学常数有过如此狂热的数值计算竞赛。不过,有10位小数就足以满足几乎所有的实际计算需要,在日常生活中一般取π=3.1416就足够了。关于π的传奇故事已经成为一段历史,读者们也不必再将时间花在计算或者背诵π的数值上了。
以上就是小编的分享了,希望可以帮助到大家。
以上是关于编写程序:计算π的近似值,π的计算公式为的主要内容,如果未能解决你的问题,请参考以下文章
c语言编程题 计算圆周率的近似值,计算公式为:e=1+1/1!+1/2!+1/3!+1/4!+1/
编写程序用下面公式求π的近似值 π/4 ≈ 1- 1/3+1/5-1/7+…… 直到最后一项的绝对值小于10-7 为止
C语言试题九十一之写一个程序,用公式π/4=1-1/3+1/5-1/7+...,求π的近似值,直到最后一项的绝对值小于10^-8为止。
C语言试题九十一之写一个程序,用公式π/4=1-1/3+1/5-1/7+...,求π的近似值,直到最后一项的绝对值小于10^-8为止。