您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用Python實現計算圓周率π的值到任意位,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
具體如下:
一、需求分析
輸入想要計算到小數點后的位數,計算圓周率π的值。
二、算法:馬青公式
π/4=4arctan1/5-arctan1/239
這個公式由英國天文學教授約翰·馬青于1706年發現。他利用這個公式計算到了100位的圓周率。馬青公式每計算一項可以得到1.4位的十進制精度。因為它的計算過程中被乘數和被除數都不大于長整數,所以可以很容易地在計算機上編程實現。
三、python語言編寫出求圓周率到任意位的程序如下:
# -*- 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
運行截圖如下:
看完了這篇文章,相信你對“如何使用Python實現計算圓周率π的值到任意位”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。