• 技术文章 >后端开发 >Python教程

    如何使用python实现圆周率的计算(代码示例)

    不言不言2019-03-18 09:22:19转载16583
    本篇文章给大家带来的内容是关于如何使用python实现圆周率的计算(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    一、π的简介

    π的介绍

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

    π的求解历程

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

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

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

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

    二、π的近似计算

      1. 计算公式

    2. 方法讲解

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

    3. 代码实现(python)

    from math import fabs           #导入数学模块
    from time import perf_counter   #导入时间模块
    
    def Bar(i):         #动态文本条
        N = pow(10,level)
        a = int((i/N)*50)
        b = 50 - a
        Y , N = '*' * a , '.' * b
        print("\r计算中:{:3.0f}% [{}->{}] {:.2f}s"
              .format(2*a,Y,N,perf_counter()),end='')
        
    level = eval(input('计算Pi精确到小数点后几位数:'))
    print('\n{:=^70}'.format('计算开始'))
    a,b,pi,tmp = 1,1,0,1
    i = 0
    '''
    a 分子  |  b 分母  |  pi 圆周率
    tmp 存储a/b的值    |  i  执行进度
    '''
    perf_counter()      #开始计时
    while (fabs(tmp) >= pow(10,-level)): #计算Pi
        pi += tmp
        b += 2
        a = -a
        tmp = a/b
        i += 2
        Bar(i)          #调用函数,实时显示计算进度
    
    print('\n{:=^70}'.format('计算完成'))
    print('\nPi的计算值为:{}'.format(round(pi*4,level))) #输出计算结果

    4. 图片示例

    由上面3张图片可知,精确到小数点后4位只要14.07秒,精确到小数点后6位也需要124.61秒,而精确到小数点后8位就需要 850 / 8% = 10625秒,约为 177 分钟,也就是2.95个小时。这种方法固然好,但计算起来还是需要很长一段时间的。

    《圆周率π》是个奇妙而美丽的存在,它是个无限不循环小数,就像是一种缺陷美,只要你有发现美的眼睛!

    2011年,国际数学协会正式宣布,将每年的3月14日设为国际数学节,来源则是中国古代数学家祖冲之的圆周率。

    以上就是如何使用python实现圆周率的计算(代码示例)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:博客园,如有侵犯,请联系admin@php.cn删除
    专题推荐:python
    上一篇:Python模拟微博登陆的方法介绍(附代码) 下一篇:python中猴子补丁是什么?怎么用?
    千万级数据并发解决方案

    相关文章推荐

    • Python抓取网页乱码的原因及解决方法• Python中的全局变量和局部变量的区别(代码详解)• Python中整数的最大可能值是多少?(代码示例)• python list的常用方法• Python模拟微博登陆的方法介绍(附代码)
    1/1

    PHP中文网