方法一:割圆法
计算公式为:
π≈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