一、什么是马青公式
        马青公式由英国天文学教授约翰·马青(John Machin ,1686 –1751)于1706年发现,他利用这个公式计算到了100位的圆周率。

马青公式每计算一项可以得到位的十进制精度。通过适当地编程,可以使它的计算过程中乘数和除数都不超过整型数据范围,所以可以很容易地在计算机上编程实现。无需计算高精度浮点数乘法、除法或平方根,故无需使用复杂的FFT算法加速。
        为了计算更高的十进制位数,不仅需要计算更多的项数,还要使用更长的数组来保留更高的精度。故马青公式的时间复杂度为. 故此,如果要计算极多的位数,如百万位以上,一般不使用马青公式。
        还有很多类似于马青公式的反正切公式。在所有这些公式中,马青公式是较为简洁且迅速的。

二、马青公式如下:

三、Python代码如下

# -*- coding: utf-8 -*-
"""
Spyder EditorThis is a temporary script file.
"""#首先输入计算圆周率Π后的多少个小数
number = int(input("请输入你要计算多少位的圆周率Π:"))
#多计算十位,防止位数出现取舍的影响(多算10为小数)
number1 = number + 10
#定义计算小数的位数
b = 10**number1
#求首项的小数【4/5】
x1 = b*4//5
#求1/239的小数
x2 = b*1//-239
#进行求和
num_sum = x1 + x2#循环终止条件
number *=2
for i in range(3,number,2):x1 //= -25x2 //= (-239*239)x = (x1+x2) // inum_sum += x
#求出Π
pai = num_sum * 4
#去掉多计算的十位
pai //= 10 ** 10
#转化为字符型
str_pai = str(pai)
#转化为浮点数
result_pai = str_pai[0] + '.' +str_pai[1:len(str_pai)]
print(result_pai)
#写入文件
with open('pai.txt','w') as f: #文件一般存放于python源文件的文件夹里f.write(result_pai)

Python利用马青公式计算圆周率Π并写入文件相关推荐

  1. 用马青公式计算圆周率,Python语言

    马青公式: 简单实现 import times_time = time.time() #定义计算的位数 num = 100000 #多计算10位,以防出错 num1 = num + 10 #定义计算小 ...

  2. c语言马青公式计算圆周率,数学圆周率计算马青公式π/4=4arctan1/5-arctan1/239如何得出的?...

    共回答了16个问题采纳率:87.5% 设 x = arctan A tan x = A tan 2x = (2 tan x) / (1 - tan^2 x) tan 2x = (2A) / (1 - ...

  3. Machin(梅钦/马青)公式计算圆周率π

    作为一名计算机的初学者,因为老师作业的要求去完成圆周率的计算,因此突然产生了兴趣,想尝试自己用梅钦公式来完成这个任务.上网找了一些资料,也看见了短短几行就完成任务的代码,实在佩服,不过那样的代码实在对 ...

  4. 利用马青公式输出π的后任意位数字

    马青公式 π=16arctan15−4arctan1239π=16arctan15−4arctan1239\pi = 16arctan \frac{1}{5} - 4arctan \frac{1}{2 ...

  5. 用马青公式计算π的c程序

    /*一个计算π的c程序 ====================================== 由于大多数计算机内置算法有一定精度限制,你想计算那么多位就会产生问题. 这里有一个c程序,允许计算 ...

  6. 利用Java的BigDecimal与马青公式精确计算π后10000位,

    首先给出公式如下: π=16arctan1/5−4arctan1/239: 即是 π=16×(1/(1×5)−1/(3×5的3次方)+1/(5×5的5次方)-)−4×(1/(1×239)−1/(3×2 ...

  7. 【Python、数学】计算任意位数的圆周率π(马青公式)

    1. 公式准备 计算准确圆周率的马青公式: 对反正切进行级数展开: 就可以得到 π = 16(1/5 - 1/3/5^3 + 1/5/5^5 - ...) - 4(1/239 - 1/3/239^3 ...

  8. 用Machin公式计算圆周率的源程序

    用Machin公式计算圆周率的源程序 /* Program to compute PI, by Jason Chen, May 1999 ** ** Open VC++ IDE, new a win3 ...

  9. 根据公式计算圆周率Π的值

    根据公式计算圆周率的值 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 根据公式计算圆周率的值 前言 一.如何计算? 二.计算步骤 1.代码及注释 总结 前言 计算圆周率Π的近似值 ...

最新文章

  1. 【 FPGA/IC 】谈谈复位
  2. 【Java】eclipse如何设置成保护眼的背景色
  3. 需求文件requirements.txt的创建及使用
  4. Spring事务管理示例JDBC
  5. HomeBrew 更换为国内源--提高brew命令操作速度
  6. 萌新学习Python爬取B站弹幕+R语言分词demo说明
  7. 模拟电子技术不挂科学习笔记2(三极管、场效应管)
  8. Selenium的定位元素
  9. 支付1000元咨询费,如何让PB编写的程序不能被反编译?
  10. 动态规划(DP)的原理、实现及应用
  11. scala机器学习实战(三) 保险数据预测分析(LR算法详解)
  12. 进字节跳动了,年薪30w+
  13. 【python】cookie和session实现状态保持(django中)
  14. gb2312简繁转换js兼容各种浏览器
  15. PPPOE和IPOE
  16. PS|001制作1寸照片
  17. Echarts实现省级地图的两种方法(以浙江省为例)
  18. 1134: 字符串转换
  19. 2021中国智能制造发展现状和前景趋势分析
  20. 最简单的共享列表服务器KissLists

热门文章

  1. 利用描点绘图法求解复杂函数
  2. 1一10到时的英文单词_1到10的英文单词
  3. OSPF基本概念和OSPF配置
  4. 电信大型服务器机房_四川电信服务器idc数据中心
  5. beyond compare linux文件夹,Beyond Compare比较文件夹的方法
  6. 阿里云服务器ECS开放8080端口
  7. FA-Oracle ERP 资产模块的非常规功能探讨
  8. js中for(i in array)和for(i=0;i<array.length;i++)之间的坑
  9. 卷积 对图像进行卷积操作 卷积神经网络
  10. JavaScript基础知识和jQuery基础知识简介