南北朝时,我国数学家祖冲之首先把圆周率值计算到小数点后六位,比欧洲早了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,自动化测试,的学习笔记和demo。大部分代码代用py3.6+,部分老代码采用py2.7 AutomationTest 自动化测试相关,包括...
"mini-omp-demo.rar_DEMO_omp_并行计算_并行计算_c++" 是一个压缩包,其中包含了一系列C++编程语言编写的并行计算示例程序,主要利用OpenMP(Open Multi-Processing)库进行开发。OpenMP是一种流行的应用程序接口...
6. **数学和几何**:创建花朵形状可能涉及到三角函数、圆周率和几何计算。 7. **音效处理**:虽然1k的限制很严苛,但有可能通过Web Audio API压缩音频数据,实现声音与画面同步。 总的来说,"js1kdemo flower"是对...
至于压缩包中的文件“piTest”,这可能是该项目中的一个测试文件,可能用于测试Akka Actor系统计算圆周率(Pi)或其他数学运算的性能。通常,这样的测试会创建多个Actor,每个Actor负责计算一部分结果,然后将结果...
欧拉公式求职率的matlab代码Workshop 2012年4月27日 内容 第一次研讨会日期主要用于准备和介绍该主题的首要任务。...用于此目的的源代码在debugger-demo文件夹中 任务 完成所有任务后,将拉取请求发送到Work
5. **pi**:可能是一个计算圆周率π的程序,可能使用了数学公式和循环,展示了浮点数运算和数学库的使用。 6. **EasySnake**:简易版的贪吃蛇游戏,展示了C语言控制台图形和事件处理能力。 7. **Release**:这通常是...
5. 交互式教学工具,如圆周率的Monte Carlo方法估算。 通过这些示例,你可以深入理解Mathematica如何在不同场景下发挥其功能,提升你的数学建模和数据分析能力。无论你是初学者还是经验丰富的用户,这个Demo都会是...
- demo:运行演示程序,帮助用户理解特定的函数或工具箱。 - path:控制MATLAB的搜索路径。 - who:列出当前工作空间的变量。 - whos:列出当前工作空间的变量(详细列表)。 - load:从磁盘文件中恢复变量。 - save...
这可能涉及到数学和几何知识,例如使用极坐标系或者圆周率来确定角度和距离。 4. **应用动画**:在按钮点击事件触发时,启动所有的动画。通过设置动画的监听器,可以在动画开始、结束或者更新时执行相应的逻辑。 5...
- `pi` 表示圆周率 - `eps` 是浮点数的最小可分辨差值 - `inf` 表示无穷大 - `NaN` 表示非数字(Not-a-Number) 2. **操作符与特殊字符**: - `-` 矩阵减法 - `*` 矩阵乘法 - `^` 矩阵幂数 - `/` 数组除法...
- `pi`: 圆周率π。 - `eps`: 浮点运算的相对精度(大约为`exp(-52)`)。 - `NaN`: Not-a-Number,表示不确定或未定义的值。 - `inf`: 正无穷大。 - `ans`: 默认结果变量,存储最近一次表达式的输出结果。 - **...
在蒙特卡罗模拟中,我们可能需要启动大量goroutine来并行执行计算任务,比如模拟投掷骰子或者估算圆周率等。例如,我们可以通过以下方式创建和启动goroutine: ```go go func() { // 这里执行蒙特卡罗模拟的单个...
- 矩阵的转置(`'`)、求逆(`inv`)等操作。 - **MATLAB的文件** - **命令文件:** - 后缀名为`.m`。 - 用于存储一系列命令,可以在命令窗口中直接调用。 - 定义的变量及其值的改变在工作空间中有效。 - **函数...
- `Demo`:运行演示程序。 - `Path`:控制MATLAB的搜索路径。 2. **变量和工作空间管理**: - `Who`:列出当前工作空间中的变量。 - `Whos`:详细列出当前工作空间的变量信息。 - `Load`:从磁盘文件中恢复...
- **演示功能** (Demo)。 - **退出命令**: `exit` 或 `quit`。 - **基本语句结构**: - **赋值语句**: 变量名列表 = 表达式; 示例: `A = [1, 2, 3; 4, 5, 6; 7, 8, 0]` - **保留字符串**: - `eps`: 判断0元素用的...
- `pi`:π,圆周率。 - `inf`:无穷大。 - `NaN`:非数字,表示无法计算的结果。 - `eps`:浮点数的最小可分辨差。 2. **操作符与特殊字符**: - `-`:减法,也用于矩阵的负运算。 - `*`:矩阵乘法。 - `^`...
- `PI`是MATLAB中的预定义常量,表示圆周率π。 - 变量命名时,可以使用`I`和`J`表示复数的虚部,`EPS`是浮点数的最小可分辨差。 2. **数学函数**: - `sin`, `cos`, `tan`等是常见的三角函数,例如`Sin6`和`Tan...