zoukankan      html  css  js  c++  java
  • Python实现计算圆周率π的值到任意位的方法示例

    Python实现计算圆周率π的值到任意位的方法示例

     
    这篇文章主要介绍了Python实现计算圆周率π的值到任意位的方法,简单分析了圆周率的计算原理,并结合实例形式分析了Python计算圆周率的相关操作技巧,需要的朋友可以参考下
     

    本文实例讲述了Python实现计算圆周率π的值到任意位的方法。分享给大家供大家参考,具体如下:

    一、需求分析

    输入想要计算到小数点后的位数,计算圆周率π的值。

    二、算法:马青公式

    π/4=4arctan1/5-arctan1/239

    这个公式由英国天文学教授约翰·马青于1706年发现。他利用这个公式计算到了100位的圆周率。马青公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。

    三、python语言编写出求圆周率到任意位的程序如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    # -*- coding: utf-8 -*-
    from __future__ import division
    ####################导入时间模块
    import time
    ###############计算当前时间
    time1=time.time()
    ################算法根据马青公式计算圆周率####################
    number = int(raw_input('请输入想要计算到小数点后的位数n:'))
    # 多计算10位,防止尾数取舍的影响
    number1 = number+10
    # 算到小数点后number1位
    b = 10**number1
    # 求含4/5的首项
    x1 = b*4//5
    # 求含1/239的首项
    x2 = b// -239
    # 求第一大项
    he = x1+x2
    #设置下面循环的终点,即共计算n项
    number *= 2
    #循环初值=3,末值2n,步长=2
    for i in xrange(3,number,2):
      # 求每个含1/5的项及符号
      x1 //= -25
      # 求每个含1/239的项及符号
      x2 //= -57121
      # 求两项之和
      x = (x1+x2) // i
      # 求总和
      he += x
    # 求出π
    pai = he*4
    #舍掉后十位
    pai //= 10**10
    ############ 输出圆周率π的值
    paistring=str(pai)
    result=paistring[0]+str('.')+paistring[1:len(paistring)]
    print result
    time2=time.time()
    print u'总共耗时:' + str(time2 - time1) + 's'

    运行结果:

    请输入想要计算到小数点后的位数n:20
    3.14159265358979323846
    总共耗时:9.77699995041s

    请输入想要计算到小数点后的位数n:50
    3.14159265358979323846264338327950288419716939937510
    总共耗时:2.30099987984s

    运行截图如下:

    PS:这里再为大家推荐几款计算工具供大家参考使用:

    在线一元函数(方程)求解计算工具:
    http://tools.jb51.net/jisuanqi/equ_jisuanqi

    科学计算器在线使用_高级计算器在线计算:
    http://tools.jb51.net/jisuanqi/jsqkexue

    在线计算器_标准计算器:
    http://tools.jb51.net/jisuanqi/jsq

    更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

    希望本文所述对大家Python程序设计有所帮助。

  • 相关阅读:
    学习使用apt(三)
    2005 男人感悟100(转自MOP)
    学习使用apt
    学习使用apt(四)
    编译glib1.2.20r5出错./libtool: line 297
    poj1004的java实现
    猜算式
    基于爬山算法求解TSP问题(JAVA)
    mysql数据库的简单语句的介绍(1)
    NYOJ42 一笔画问题
  • 原文地址:https://www.cnblogs.com/it-tsz/p/12344213.html
Copyright © 2011-2022 走看看