使用概率法得到的圆周率,其值具有不确定性。而古人计算圆周率,一般是用割圆法,即用圆的内接或外切正多边形来逼近圆的周长。Archimedes用正96边形得到圆周率小数点后三位的精度,刘徽用正3072边形得到5位精度。
编写割圆法求π得近似值,示例代码如下:
package com.maths;
/**
* 割圆法求解圆周率的近似值
*/
import java.util.Scanner;
public class PI2 {
public static void main(String[] args) {
int i,n,s;
double k,y2;
System.out.println("请输入割圆的次数:");
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()) {
n = scanner.nextInt();
i = 0;
k = 3.0;
y2 = 1.0;
s = 6;
while(i<n) {
System.out.println("第"+i+"次割圆,为"+s+"边形"+"PI = "+k*Math.sqrt(y2));
s*=2;
y2=2-Math.sqrt(4-y2);
i++;
k*=2.0;
}
}
}
}