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)
}
}
[img]http://dl2.iteye.com/upload/attachment/0088/3401/d34dbd26-6be9-3e04-b083-58a1bfa0869c.jpg[/img]
[img]http://dl2.iteye.com/upload/attachment/0088/3403/43034067-76f5-34b2-bfa6-30f83cabbc98.jpg[/img]
[img]http://dl2.iteye.com/upload/attachment/0088/3405/506ca269-7142-3d02-a0ee-30a89d854639.jpg[/img]
[b]最后看下实际情况,用数据来说明一切:[[/b]
[b]
[size=xx-large]>> 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[/size][/b]