java实现祖冲之割圆法

祖冲之割圆法

南北朝时,我国数学家祖冲之首先把圆周率值

计算到小数点后六位,比欧洲早了1100年!他采

用的是称为“割圆法”的算法,实际上已经蕴含

着现代微积分的思想。

如图【1.jpg】所示,圆的内接正六边形周长

与圆的周长近似。多边形的边越多,接近的越好

!我们从正六边形开始割圆吧。

如图【2.jpg】所示,从圆心做弦的垂线,可

把6边形分割为12边形。该12边形的边长a’的计

算方法很容易利用勾股定理给出。之后,再分割

为正24边形,…如此循环会越来越接近圆周。

之所以从正六边开始,是因为此时边长与半径

相等,便于计算。取半径值为1,开始割圆吧!

以下代码描述了割圆过程。
程序先输出了标准圆周率值,紧接着输出了不

断分割过程中多边形边数和所对应的圆周率逼近

值。

public class B21
{
    public static void main(String[] 

args)
    {
        System.out.println("标

准 " + Math.PI);
        
        double a = 1; 
        int n = 6;
        
        for(int i=0; i<10; i++)
        {
            double b = 

Math.sqrt(1-(a/2)*(a/2));
            a = 

Math.sqrt((1-b)*(1-b) + (a/2)*(a/2));
            
            n = 

______________; //填空
            
            

System.out.println(n + "  " + _______________);  

// 填空
        }
    }
}



请分析代码逻辑,并推测划线处的代码。

答案写在 “解答.txt” 文件中

注意:只写划线处应该填的内容,划线前后的内

容不要抄写。


n * 2
a / 2 * n

标准 3.141592653589793
12 3.105828541230249
24 3.1326286132812378
48 3.1393502030468667
96 3.14103195089051
192 3.1414524722854624
384 3.141557607911858
768 3.1415838921483186
1536 3.1415904632280505
3072 3.1415921059992717
6144 3.1415925166921577

posted @ 2019-07-30 09:44  南墙1  阅读(38)  评论(0编辑  收藏  举报