圆周率的计算

π的计算

一、π的简介

  • π的介绍

  圆周率用希腊字母 π(读作pài)表示,是一个常数(约等于3.141592654),是代表圆周长和直径的比值。它是一个即无限不循环小数,在日常生活中,通常都用3.14代表圆周率去进行近似计算。

  • π的求解历程

  1965年,英国数学家约翰·沃利斯(John Wallis)出版了一本数学专著,其中他推导出一个公式,发现圆周率等于无穷个分数相乘的积。

  2015年,罗切斯特大学的科学家们在氢原子能级的量子力学计算中发现了圆周率相同的公式。

  2019年3月14日,谷歌宣布圆周率现已到小数点后31.4万亿位。

这周我们的作业就是用Python来计算 π,过程略微心酸,为了装个计时器捣鼓了好久,现在就一起来看看 π的Python代码实现吧

一、安装tqdm函数库

tqdm是一个强大的终端进度条工具,我利用pip获取tqdm函数库。

1、打开运行,输入“cmd”

2、2:输入pip install   你要安装的库(如 pip install tqdm)

这样就是安装好了。

二、π的近似计算

   1. 计算公式 

 

  2. 方法讲解

  所用公式等式右边分子都为1,分母为递增数列,从第一项开始,奇数项符号为正,偶数项符号为负。等式右边的分母越大,越小,圆周率π计算的值越精确;换个角度讲,就是等式右边的项越多,计算的值越精确。

三代码(这里我们照书上的代码来就好)

from random import random
from math import sqrt
from time import *
from tqdm import tqdm
DARTS=10000000
hits=0.0
clock()
for i in range(1,DARTS+1):
    x,y=random(),random()
    dist=sqrt(x**2+y**2)
    if dist <=1.0:
        hits=hits+1
pi=4*(hits/DARTS)
for i in tqdm(range(10)):
    print("\r{:3}%".format(i/10*100),end="") #这里的i/10*100指每10%显示一次
    sleep((clock())/100)#用执行程序的总时间来算出进度条间隔的时间  
print("pi的值{}.".format(pi))
print("运行时间:{:.5f}s".format(clock()))

 运行结果如图

可以看到计算到不同的位数所用的时间不同,越是精确越是耗时,但是 π的计算远远不止你的电脑能计算到的位数,这或许就是圆周率一直以来能够吸引人的地方吧

 

 

posted @ 2019-03-20 22:57  偷心大圣  阅读(4405)  评论(0编辑  收藏  举报