计算Pi

2009年10月9日

Jirah根据Creative Commons 3.0署名共享许可Pi,或π,是一个数学常数,其值是圆的周长与直径的比值。自古以来,人们就知道一个圆的周长与直径的比值对于所有的圆都是一样的;在基督诞生之前,古埃及人、印度人和巴比伦人都计算过π的近似值,大约为两千年。π、 约等于3.14159,是数学、科学和工程中最重要的常数之一;它经常出现在几何、三角和微积分的研究中,爱因斯坦在他的广义相对论场方程中使用π,并且出现在许多统计分布中。在上一个运动我们使用spigot算法计算π的位数;我们今天的练习将使用两种不同的方法来计算π的值。

计算π的一种有趣方法是使用蒙特卡罗模拟。如果一个半径为第页刻在边长为2的正方形中第页,圆的面积为π第页2广场的面积为(2第页)2,所以圆的面积与正方形的面积之比为π/4。另一种看待这个问题的方法,如图中所示,就是只考虑圆的第一个象限;这个广场的面积是第页 2圆在正方形内的部分面积为π第页2/4.

通过选取随机分布在整个正方形中的大量点,并计算内接圆内有多少点,我们可以估计π的值。我们可以通过建立一个模型,将沙子撒在上面,并计算沙子的单个颗粒数来实现这一点,但由于我们是程序员,所以为我们编写一个程序来进行计数更容易。

您的第一个任务是实现一个程序,使用上述蒙特卡罗方法计算π的值。

第二种方法是由居住在锡拉丘兹的希腊数学家阿基米德(公元前287年至212年)提出的,他通过测量具有96条边的内切和外切正多边形的周长,将π的值限定在一个小范围内,这是出了名的:223/71<π<22/7。

来自www.gap-system.org/~history/HistTopics/Pi_through_the_ages.html考虑一个半径为1,周长为2π的圆,其中3×2的正多边形n个-1侧面内切和外切;的图表n个=2如右图所示。如果b条n个是内接多边形的半周长n个是外切多边形的半周长,则为n个增加,b条1,b条2,b条,…定义递增序列,以及1,2,,…定义了一个递减序列,每个序列都有极限π。

鉴于K(K)= 3 × 2n个-1,半周长为n个=K(K)tan(π/K(K))以及b条n个=K(K)sin(π/K(K))根据正弦和正切的定义。同样,n个+1= 2K(K)tan(π/2K(K))以及 n个+1= 2K(K)sin(π/2K(K)).

然后,简单的三角学允许我们计算(1/n个+ 1/b条n个) = 2/n个+1n个+1b条n个= (b条n个+1)2阿基米德从1=3 tan(π/3)=3√3和b条1=3sin(π/3)=3√3/2并计算b条6< π <6.

当然,阿基米德没有三角学,因为它还没有发明;他必须直接算出几何图形,还要手工计算所有的运算!

第二个任务是编写一个函数,使用阿基米德算法计算π的边界。您可以测试您的函数n个=6,正如阿基米德所做的那样。完成后,欢迎您阅读运行建议的解决方案,或者在下面的评论中发布你的解决方案或讨论这个练习。

页:1 2