用python计算圆周率

一、算法

马青公式:马青公式由英国天文学教授约翰·马青(John Machin ,1686 –1751)于1706年发现。马青公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。

π=16arctan15−4arctan1239π=16arctan15−4arctan1239 arctanx=x−x33+x55−......arctanx=x−x33+x55−...... π=16×(11×5−13×53+......)−4×(11×239−13×2393+......)π=16×(11×5−13×53+......)−4×(11×239−13×2393+......)
 

 

二、python代码

根据提示输入要计算的长度,计算完成自动生成pai.txt文件,要多长有多长。

经过测试生成10w位大概需要23秒左右。


# -*- coding: utf8 -*-
import time
def comput():
	n =int(input('请输入要计算的长度:'))
	start_time = time.time()
	w = n+10
	b = 10**w
	x1 = b*4//5
	x2 = b// -239
	he = x1+x2
	n *= 2
	for i in range(3,n,2):
	    x1 //= -25
	    x2 //= -57121
	    x = (x1+x2) // i
	    he += x
	pai = he*4
	pai //= 10**10
	end_time = time.time()
	run_time = str(end_time - start_time)
	paistr=str(pai)
	paistr=paistr[:1] + '.' + paistr[1:]
	f=open('pai.txt','w')
	f.write(paistr)
	f.close()
	print ('运行时间:' + run_time )
	#print ('计算结果:',pai)
	print ('\n'*1) 
	comput()
comput()

  代码github地址:https://github.com/JackieZheng/Python-Pai

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JackieZhengChina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值