使用python计算圆周率(有进度条) 使用 python 实现π的计算

π的计算

一、π的简介

  • π的介绍

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

  • π的求解历程

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

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

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

 

  此处用一个自我感觉‘良好’的公式进行求解,说良好是因为计算结果相对准确,但计算过程用时较长,一起来学习吧~~~

 

 

二、π的近似计算

   1. 计算公式 

                               

 2. 方法讲解

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

 

  3. 代码实现(python)

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)) #这里的i/10*100指每10%显示一次
    sleep((clock())/100)#用执行程序的总时间来算出进度条间隔的时间  
print("pi的值{}.".format(pi))
print("运行时间:{:.5f}s".format(clock()))

4. 图片示例

由上面2张图片可知,算1000W次只要8.20秒

π的计算

一、π的简介

  • π的介绍

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

  • π的求解历程

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

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

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

 

  此处用一个自我感觉‘良好’的公式进行求解,说良好是因为计算结果相对准确,但计算过程用时较长,一起来学习吧~~~

 

 

二、π的近似计算

   1. 计算公式 

                               

 2. 方法讲解

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

 

  3. 代码实现(python)

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)) #这里的i/10*100指每10%显示一次
    sleep((clock())/100)#用执行程序的总时间来算出进度条间隔的时间  
print("pi的值{}.".format(pi))
print("运行时间:{:.5f}s".format(clock()))

4. 图片示例

由上面2张图片可知,算1000W次只要8.20秒

猜你喜欢

转载自www.cnblogs.com/lzz807237221/p/10568206.html