`
smallearth
  • 浏览: 37510 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

demo06--求圆周率

 
阅读更多


南北朝时,我国数学家祖冲之首先把圆周率值计算到小数点后六位,比欧洲早了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” 文件中

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

public class demo06
{
	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 = 2*n ; //填空
			
			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




分享到:
评论

相关推荐

    欧拉公式求圆周率的matlab代码-Python-Study:Python,robotframework,docker笔记和练习

    欧拉公式求圆周率的matlab代码 Python Study 摘要:此项目包括 Python, robotframework,docker,自动化测试,的学习笔记和demo。大部分代码代用py3.6+,部分老代码采用py2.7 AutomationTest 自动化测试相关,包括...

    mini-omp-demo.rar_DEMO_omp_并行计算_并行计算 c++

    "mini-omp-demo.rar_DEMO_omp_并行计算_并行计算_c++" 是一个压缩包,其中包含了一系列C++编程语言编写的并行计算示例程序,主要利用OpenMP(Open Multi-Processing)库进行开发。OpenMP是一种流行的应用程序接口...

    js1kdemo flower

    6. **数学和几何**:创建花朵形状可能涉及到三角函数、圆周率和几何计算。 7. **音效处理**:虽然1k的限制很严苛,但有可能通过Web Audio API压缩音频数据,实现声音与画面同步。 总的来说,"js1kdemo flower"是对...

    用Scala写的akka actor简单demo

    至于压缩包中的文件“piTest”,这可能是该项目中的一个测试文件,可能用于测试Akka Actor系统计算圆周率(Pi)或其他数学运算的性能。通常,这样的测试会创建多个Actor,每个Actor负责计算一部分结果,然后将结果...

    欧拉公式求圆周率的matlab代码-workshop-ss12-01:工作坊-ss12-01

    欧拉公式求职率的matlab代码Workshop 2012年4月27日 内容 第一次研讨会日期主要用于准备和介绍该主题的首要任务。...用于此目的的源代码在debugger-demo文件夹中 任务 完成所有任务后,将拉取请求发送到Work

    适合C语言入门学习的一些基础demo.zip

    5. **pi**:可能是一个计算圆周率π的程序,可能使用了数学公式和循环,展示了浮点数运算和数学库的使用。 6. **EasySnake**:简易版的贪吃蛇游戏,展示了C语言控制台图形和事件处理能力。 7. **Release**:这通常是...

    Mathematica_Demo

    5. 交互式教学工具,如圆周率的Monte Carlo方法估算。 通过这些示例,你可以深入理解Mathematica如何在不同场景下发挥其功能,提升你的数学建模和数据分析能力。无论你是初学者还是经验丰富的用户,这个Demo都会是...

    MATLAB命令大全-matlab命令大全.pdf

    - demo:运行演示程序,帮助用户理解特定的函数或工具箱。 - path:控制MATLAB的搜索路径。 - who:列出当前工作空间的变量。 - whos:列出当前工作空间的变量(详细列表)。 - load:从磁盘文件中恢复变量。 - save...

    卫星菜单Demo

    这可能涉及到数学和几何知识,例如使用极坐标系或者圆周率来确定角度和距离。 4. **应用动画**:在按钮点击事件触发时,启动所有的动画。通过设置动画的监听器,可以在动画开始、结束或者更新时执行相应的逻辑。 5...

    matlab常用函数汇总 (2).docx

    - `pi` 表示圆周率 - `eps` 是浮点数的最小可分辨差值 - `inf` 表示无穷大 - `NaN` 表示非数字(Not-a-Number) 2. **操作符与特殊字符**: - `-` 矩阵减法 - `*` 矩阵乘法 - `^` 矩阵幂数 - `/` 数组除法...

    Matlab与数值分析实验

    - `pi`: 圆周率π。 - `eps`: 浮点运算的相对精度(大约为`exp(-52)`)。 - `NaN`: Not-a-Number,表示不确定或未定义的值。 - `inf`: 正无穷大。 - `ans`: 默认结果变量,存储最近一次表达式的输出结果。 - **...

    go-parallelism-monte-carlo-demo:通过蒙特卡罗模拟证明 Go 并行性和陷阱

    在蒙特卡罗模拟中,我们可能需要启动大量goroutine来并行执行计算任务,比如模拟投掷骰子或者估算圆周率等。例如,我们可以通过以下方式创建和启动goroutine: ```go go func() { // 这里执行蒙特卡罗模拟的单个...

    数值分析实验(十个)Sandy著作

    - 矩阵的转置(`'`)、求逆(`inv`)等操作。 - **MATLAB的文件** - **命令文件:** - 后缀名为`.m`。 - 用于存储一系列命令,可以在命令窗口中直接调用。 - 定义的变量及其值的改变在工作空间中有效。 - **函数...

    matlab命令中文翻译大全.pdf

    - `Demo`:运行演示程序。 - `Path`:控制MATLAB的搜索路径。 2. **变量和工作空间管理**: - `Who`:列出当前工作空间中的变量。 - `Whos`:详细列出当前工作空间的变量信息。 - `Load`:从磁盘文件中恢复...

    Matlab与神经网络工具箱讲义.pptx

    - **演示功能** (Demo)。 - **退出命令**: `exit` 或 `quit`。 - **基本语句结构**: - **赋值语句**: 变量名列表 = 表达式; 示例: `A = [1, 2, 3; 4, 5, 6; 7, 8, 0]` - **保留字符串**: - `eps`: 判断0元素用的...

    matlab常用函数汇总.docx

    - `pi`:π,圆周率。 - `inf`:无穷大。 - `NaN`:非数字,表示无法计算的结果。 - `eps`:浮点数的最小可分辨差。 2. **操作符与特殊字符**: - `-`:减法,也用于矩阵的负运算。 - `*`:矩阵乘法。 - `^`...

    上机实验1:熟悉matlab基本操作.docx

    - `PI`是MATLAB中的预定义常量,表示圆周率π。 - 变量命名时,可以使用`I`和`J`表示复数的虚部,`EPS`是浮点数的最小可分辨差。 2. **数学函数**: - `sin`, `cos`, `tan`等是常见的三角函数,例如`Sin6`和`Tan...

Global site tag (gtag.js) - Google Analytics