zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    套接字socket
    Windows环境下教你用Eclipse ADT 插件生成.h/.so文件,Java下调用JNI,轻松学习JNI
    How to start/stop DB instance of Oracle under Linux
    Oracle SGA具体解释
    Oracle Study之--Oracle 单实例11.2.0.1.0升级到11.2.0.3.0
    MapReduce(十六): 写数据到HDFS的源代码分析
    Spring表达式语言SpEL简单介绍
    LinkCutTree详解
    洛谷P3379 【模板】最近公共祖先(LCA)(树链剖分)
    树链剖分详解
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13076961.html
Copyright © 2011-2022 走看看