用割圆术求圆周率π

2023-10-30 13:38
文章标签 圆周率 用割 圆术求

本文主要是介绍用割圆术求圆周率π,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

圆周率π的递推公式如下:

     

     以半径为1的圆开始,依次在圆内画正六边形、正十二边形、正6n边形...

     只有n趋近于无穷大,便可以得到足够接近圆的正多边形,计算的圆周率π也就越精确。

完整代码如下:

package cn.whut.num;
import java.util.Scanner;
public class pai {
static void cyclotomic(int n)			//割圆术算法
{
int i,s;
double k,len;
i=0;
k=3.0;					//初值
len=1.0;					//边长初值
s=6;						//初始内接正6边形
while(i<=n)
{
System.out.printf("第%2d次切割,为正%5d边形,PI=%.24f\n",i,s,k*Math.sqrt(len));
s*=2;					//边数加倍 
len=2-Math.sqrt(4-len); 		//内接多边形的边长 
i++;
k*=2.0;        
} 
}
public static void main(String[] args) {
int n;
System.out.print("输入切割次数:");
Scanner input=new Scanner(System.in);
n=input.nextInt(); 			//输入切割次数
cyclotomic(n);				//计算每次切割的圆周率
}
}

效果如下:


 

 

 

这篇关于用割圆术求圆周率π的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/308280

相关文章

【matlab 圆周率计算】matlab 求圆周率的两种算法实现比较

%author:laidefa %data:2014-09-19 %丘德诺夫斯基公式求圆周率 function mpi=qdnfsj(m) i=m; s=13591409; for n=1:i A=(factorial(6n)(13591409+54514013n))/(factorial(3n)factorial(n)3*(-640320)(3n)); s=s+A; end mpi=(42688

蒙特卡洛模拟计算圆周率和积分

蒙特卡洛模拟计算圆周率 import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom matplotlib.patches import Circlen = 1000r = 1.0a,b = (0.0,0.0)xmin,xmax = a-r,a+rymin,ymax = b-r,b+rx = np.

蒙特卡洛方法近似计算圆周率

一、原理图 正方形区域内有1/4圆区域,向区域内随机大量掷点。根据概率论知识,落在每一点的概率相等,当n无限大时,落在1/4区域内的点占总点数量的比例即1/4圆占正方形面积的比例,圆周率PI=4(N1/N)[N1:落在1/4圆中点的数量,N:总点数]。 二、c++试验 #include <iostream>#include <random>#include <cmath>#i

C++ 圆周率的几种求解方法

公众号:编程驿站 圆周率的常见几种求解算法,包括但不仅仅包含特卡洛模拟、割圆法和公式法。本文讲解这几种算法的实现流程。 1. 蒙特卡洛模拟算法 假设有一个半径为1的圆,如图所示。先绘制一个半径为1的圆。则图中阴影部分(1/4圆)的面积就等于π/4。 再绘制出一个正方形,可以看出它的面积是 1 。通过这种方式,就能够获取到正方形面积和阴影部分面积的一个比例。如此可得到正方形和阴影面积的比

java蓝桥杯练习-圆周率与级数

我国古代数学家对圆周率方面的研究工作,成绩是突出的。三国时期的刘徽、南北朝时期的祖冲之都在这个领域取得过辉煌战绩。 有了计算机,圆周率的计算变得十分容易了。如今,人们创造了上百种方法求π的值。其中比较常用且易于编程的是无穷级数法。 π/4 = 1 – 1/3 + 1/5 – 1/7 + 1/9 - … 是初学者特别喜欢的一个级数形式,但其缺点是收敛太慢。 π/2 = 1 + 1/3 +1/32/5

数学分析复习:圆周率和 Euler 常数的构造

文章目录 圆周率 π \pi π 和 Euler 常数 e e e 的构造圆周率 π \pi π 的构造Euler常数e的构造 本篇文章适合个人复习翻阅,不建议新手入门使用 圆周率 π \pi π 和 Euler 常数 e e e 的构造 圆周率 π \pi π 的构造 我们将以下数列的极限定义为 π \pi π L n = n ⋅ sin ⁡ 18 0

使用布丰投针法精确计算圆周率

如果在平面上有两条距离为d的平行线,假设如果拿一根长度是L的铁针随机的丢到纸面上去,那么试问铁针与某条直线所相交的概率是多少,假设铁针的长度L是大于平行线的距离d的,这样铁针就不会同时与两条直线所相交了。 添加图片注释,不超过 140 字(可选) 对于所给的问题,假设x是铁针中点与距离最近的那条平行线之间的距离,同时a是针与线形成的夹角,由此就可以使用这两个变量来描述针是否与线产生了相

圆周率小数点后1024热位图

前言 使用的python IDE :Jupyter (在Anaconda中打开Anaconda notebook打开,没有进行第三方的库和模块的下载) import numpy as npfrom mpmath import mpimport seaborn as snsimport matplotlib.pyplot as pltimport pandas as pd#取pi的102

运行hadoop自带计算圆周率例子操作

运行hadoop自带计算圆周率的jar 1、进入到hadoop安装位置,本人位置为:/usr/centos/hadoop。 2、进入handoop后找到share文件夹,并如图: 3、进入share/hadoop/mapreduce文件夹,找到hadoop-mapreduce-examples-3.2.0.jar(不同hadoop版本名字中数字部分不同)。 4、运行jar包:hadoo

神奇的圆周率

圆周率一直是一个非常好玩的东西,具体到有多神器,多好玩,还是自己去查阅文档吧。。。     话说,国庆节看到一篇文档:https://yun.baidu.com/s/1skDhRY1     文档中详细解释了割圆法计算圆周率的方法步骤,对于技术宅来说,这肯定又是一个好玩的东东。。。     于是。。。花了一丢丢时间写了一个小演示:http://pan.baidu.com/s/1bpd