package test; /** * π的求得(简单实现) * @author QuarterLifeForeJava */ public class Test { public static void main(String[] args) { //原理:极限 //由圆内接正四边行为雏型,继而扩展内接八、十六、三十二.......到n //圆的内接正n边行,n越大时,无限接近圆的面积,即π就越精确 //所用到的公式:c*c=a*a+b*b-2*a*bcosC /**设:圆的半径为单位1,正多边形的边数为n,边长为a*/ //a*a=2-2cos(360°/n) ——公式① //s正多边形面积=a*根号下(1-a*a/4)/2*n ——公式② //把①代入②化简得:s正多边形面积=n/2*sin(360°/n) (n为2的倍数,倍数>=2) } }
最后看下实际情况,用数据来说明一切:[
>> x = 1024;
>> vpa(x*sin(2*pi/x)/2,10)
ans =
3.14157294
>> x = 2048;
>> vpa(x*sin(2*pi/x)/2,10)
ans =
3.141587725
>> x = 1024*1024;
>> vpa(x*sin(2*pi/x)/2,10)
ans =
3.141592654