π的求得(简单实现)

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

猜你喜欢

转载自quarterlifeforjava.iteye.com/blog/1926776