java实现南北朝时
JAVA 实现
2023-09-14 08:58:09 时间
- 南北朝时,我国数学家祖冲之首先把圆周率值计算到小数点后六位,比欧洲早了 1100 年!
- 他采用的是称为“割圆法”的算法,实际上已经蕴含着现代微积分的思想。
如图【1.jpg】所示,圆的内接正六边形周长与圆的周长近似。
多边形的边越多,接近的越好!我们从正六边形开始割圆吧。
如图【2.jpg】所示,从圆心做弦的垂线,可把 6 边形分割为 12 边形。
该 12 边形的边长 a’的计算方法很容易利用勾股定理给出。
之后,再分割为正 24 边形,…如此循环会越来越接近圆周。
之所以从正六边开始,是因为此时边长与半径相等,便于计算。取半径值为 1,开始割圆吧!
以下代码描述了割圆过程。
程序先输出了标准圆周率值,紧接着输出了不断分割过程中多边形边数和所对应的圆周率逼近值。
/*
*/
public class Demo10_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 = n*2; //填空
System.out.println(n + " " + n*a/2 ); // 填空
}
}
}
运行结果:
标准 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
相关文章
- 云上持续交付实践系列1 --- java 篇
- Java-强引用、软引用、弱引用、虚引用
- [Java基础] Java中List.remove报错UnsupportedOperationException
- Java实现 LeetCode 807 保持城市天际线 (暴力)
- Java实现 LeetCode 419 甲板上的战舰
- Java实现蓝桥杯单位转换
- Java实现 洛谷 P1423 小玉在游泳
- java实现放麦子问题
- java实现纵横火柴棋
- java实现最大公约数
- java实现第四届蓝桥杯好好学习
- java实现第七届蓝桥杯煤球数量
- Java实现复数运算
- Java实现寻找最小的k个数
- Java实现 蓝桥杯 历届真题 稍大的串
- Java中继承的详细用法
- Java实现 蓝桥杯VIP 算法提高 栅格打印问题
- Java实现 蓝桥杯VIP 算法提高 欧拉函数
- Java实现 蓝桥杯VIP 算法训练 确定元音字母位置
- (Java实现) 洛谷 P1223 排队接水
- Java实现第八届蓝桥杯国赛 数字划分
- java核心知识点学习----并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器
- 最长公共子序列(JAVA实现)
- Java开发技术之成为高级java工程师必须学习的三个技术
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- 基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 验证码处理
- Java软件开发 | 高并发编程篇之——安全访问的集合(2)