方法一:割圆法
计算公式为:
π≈3*2^n*y_n
其中,n代表割圆次数,y_n代表圆中内嵌正6*n边形的边长
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package 计算π的近似值;
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
Scanner scan= new Scanner(System.in);
System.out.println( "请输入割圆次数:" );
int n=scan.nextInt();
cut(n);
}
static void cut( int n){
double y= 1.0 ;
for ( int i= 0 ;i<=n;i++){
double π= 3 *Math.pow( 2 , i)*y;
System.out.println( "第" +i+ "次切割,为正" +( 6 + 6 *i)+ "边形,圆周率π≈" +π);
y=Math.sqrt( 2 -Math.sqrt( 4 -y*y));
}
}
}
|
输出结果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
请输入割圆次数:
12
第 0 次切割,为正 6 边形,圆周率π≈ 3.0
第 1 次切割,为正 12 边形,圆周率π≈ 3.1058285412302498
第 2 次切割,为正 18 边形,圆周率π≈ 3.132628613281237
第 3 次切割,为正 24 边形,圆周率π≈ 3.139350203046872
第 4 次切割,为正 30 边形,圆周率π≈ 3.14103195089053
第 5 次切割,为正 36 边形,圆周率π≈ 3.1414524722853443
第 6 次切割,为正 42 边形,圆周率π≈ 3.141557607911622
第 7 次切割,为正 48 边形,圆周率π≈ 3.141583892148936
第 8 次切割,为正 54 边形,圆周率π≈ 3.1415904632367617
第 9 次切割,为正 60 边形,圆周率π≈ 3.1415921060430483
第 10 次切割,为正 66 边形,圆周率π≈ 3.1415925165881546
第 11 次切割,为正 72 边形,圆周率π≈ 3.1415926186407894
第 12 次切割,为正 78 边形,圆周率π≈ 3.1415926453212157
|
方法二:无穷级数法
求圆周率π的级数公式为:
Π=2*(1/1+1/3+1/3*2/5+1/3+2/5+3/7+1/3+2/5+3/7+4/9+···)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package 计算π的近似值;
import java.util.Scanner;
public class Example1 {
public static void main(String[] args) {
Scanner scan= new Scanner(System.in);
System.out.println( "请输入精度:" );
double z=scan.nextDouble();
System.out.println( "在精度为" +z+ "的条件下,π约等于:\n" +jishuPI(z));
}
static double jishuPI( double z){
double sum= 2 ;
int n= 1 ;
int m= 3 ;
double t= 2 ;
while (t>z){
t=t*n/m;
sum=sum+t;
n++;
m+= 2 ;
}
return sum;
}
}
|
输出为:
1
2
3
4
|
请输入精度:
1E- 15
在精度为 1 .0E- 15 的条件下,π约等于:
3.141592653589792
|
总结
以上是圆周率π的计算方法的全部内容,希望对大家有所帮助!
原文链接:http://blog.csdn.net/u013344815/article/details/50275171