本帖最后由 WylLy 于 2016-4-30 10:14 编辑
百度一下,会有很多的,而且算法什么的都有,下面就是我百度的一个,可以给你贴出来import sys
import math
from decimal import *
def bbp(n):
pi=Decimal(0)
k=0
while k <= n:
pi+=(Decimal(1)/(16**k))*((Decimal(4)/(8*k+1))-(Decimal(2)/(8*k+4))-(Decimal(1)/(8*k+5))-(Decimal(1)/(8*k+6)))
k+=1
return pi
def main(argv):
if len(argv) !=2:
sys.exit('Usage: BaileyBorweinPlouffe.py <prec> <n>')
getcontext().prec=(int(sys.argv[1]))
my_pi=bbp(int(sys.argv[2]))
accuracy=100*(Decimal(math.pi)-my_pi)/my_pi
print("Pi is approximately "+str(my_pi), len(str(my_pi)))
print("Accuracy with math.pi: "+str(accuracy))
if __name__=="__main__":
main(sys.argv[1:])
将该段代码保存到pi.py
在命令行中切到该文件的目录下,输入一下命令:
>py pi.py 101 101
后两个值越大,那么越精确
更多内容见网页:http://www.pythontab.com/html/2013/pythonhexinbiancheng_0604/428.html |