Python 实现丘德诺夫斯基(Chudnovsky)法計算高精度圓周率

圆周率之随笔(3) 今天是圆周率节,赶工怒发博文! 在古代,为了计算高精度的圆周率,数学家们往往要用纸和笔辛苦计算几个月甚至几年。而今天我们点点鼠标就可以悠闲的分分秒把圆周率计算到几百万甚至上亿位。这一章我们来看看,在现代计算机上,如何在最短时间里计算出最长的圆周率。 不少人想到计算圆周率可能会联想到SuperPi这个邪恶小程序。这个程序是日本人金田康正在1995年写的,可以在家用电脑Windows系统上把圆周率 阅读详情

【原创】

本文利用Python自带的高精度整型计算功能,实现丘德诺夫斯基(Chudnovsky)法計算高精度圓周率。计算速度比马青公式要快。

经过艰苦的调试,实现该计算,10万位的计算在秒级完成。以下是计算截图:

 

 

Chudnovsky法計算圓周率

以下是代码:

# -*- coding: UTF-8 -*-
# 丘德诺夫斯基法計算高精度圓周率程序
# Calculating PI with Chudnovsky-Series
# Author: Idealguy,2018, Shanghai
#
import time

# In following functions, High-Prec Nums are both amplified 10**n
# pre-defined: Base=10**n
# 

def Sqrt10005():  # Sqrt(10005L) by Imitate-Manual Method
    n1=0
    c=10002499687 #100.02499687
    mc=8; m=mc
    f1=10**mc
    f2=f1*f1
    a=10005*f2-c*c
    while mc<n:
        a*=f2
        b=c*2*f1
        d=a//b
        c=c*f1+d
        a-=d*(b+d)
        mc+=m
        if mc*2>n: m=n-mc
        else: m=mc
        f1=10**m
        f2=f1*f1
        n1+=1
    return c

# Main Program
#
print ("Chudnov
从蒙特卡洛到楚德诺夫斯基:五种计算圆周率π的算法原理与Python实现 圆周率π作为数学与计算科学中的基础常数,其计算方法的演进深刻反映了数值分析领域的发展。从利用几何原理的割圆术,到基于概率统计的蒙特卡洛模拟,再到借助微积分工具的无理数级数展开,核心目标都是通过构造收敛序列来无限逼近这个超越数。这些算法的技术价值在于,它们不仅是数学理论的实践,更是评估计算精度、收敛速度和算法复杂度的经典案例。在工程实践中,从概念简单的蒙特卡洛法,到收敛极快的高斯-勒让德迭代,再到目前用于破纪录计算的楚德诺夫斯基算法,不同的方法适用于从教学演示到超高位计算等多样化的应用场景。本文以Python 阅读详情

相关推荐

Python快速计算高精度圆周率

Python + gmpy2 + Chudnovsky快速计算高精度圆周率 写在之前 先上链接,以示尊重 https://www.mk-mode.com/octopress/2015/05/06/cpp-pi-computation-by-chudnovsky-bsa-with-gmp/ 这是日本的一位大牛的博客。本片文章所有算法和灵感均来自这篇博客。版权归这个作者所有。 Chudnovs...

ws995339251的博客 4258

Python编写:用Chudnovsky算法计算圆周率

在上面的代码中,我们使用了Python的decimal模块来保证高精度计算。首先,我们使用getcontext().prec将精确度设定为num+1,表示我们将保留小数点后num位。我们使用max_k计算出需要求和的最大项数,然后用循环迭代计算每一项的值,并将它们加入sum中。本文介绍如何使用Python中的Chudnovsky算法来计算圆周率,并提供完整的源代码。通过上面的代码示例,我们可以使用Python并结合Chudnovsky算法实现高精度计算圆周率π,并且可以设置需要保留的小数点位数。

ByteHero的博客 1222

go语言:实现chudnovsky algorithm楚德诺夫斯基算法(附完整源码)

go语言:实现chudnovsky algorithm楚德诺夫斯基算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 542

深入解析SAP F4帮助函数F4IF_INT_TABLE_VALUE_REQUEST的回调机制

本文深入解析了SAP ABAP开发中F4IF_INT_TABLE_VALUE_REQUEST函数的回调机制。通过剖析其工作原理与核心参数,详细阐述了如何利用回调函数实现F4帮助的多值返回、动态数据过滤及选择后校验等高级定制功能,并提供了实用的代码示例与调试技巧,帮助开发者高效应对复杂的屏幕交互需求。

weixin_29213827的博客 198

【实用运维脚本】Windows 批量 TCP 端口检测(tcping 一键巡检)

摘要:本文介绍一款高效的Windows批量TCP端口检测脚本,适配tcpingv0.39工具,实现多服务器一键巡检。脚本具有进度可视化、双日志输出、自动容错等优势,支持注释行过滤和UTF-8编码。 使用仅需三步: 1)下载tcping工具 2)编辑目标列表 3)运行脚本即可自动检测并生成带编号的检测报告。 该方案解决了手动检测效率低、易遗漏的问题,特别适合日常运维中的端口连通性检查,实测稳定可靠,开箱即用。

蕲士|D365 & 服务器运维,心有东坡,行稳致远。 802

three.js 载入 3D 模型的方法

三维模型的加载器ColladaLoader模型加载器。GLTFLoader模型加载器。OBJLoader模型加载器。FBXLoader模型加载器。

w418856的博客 4362

UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-4: ordinal not in range(128)

python3报错处理:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-4: ordinal not in range(128) 一、报错场景 // 报错代码 Traceback (most recent call last): File "test_autoo3_2.py", line 214, in <module> main() File "test_autoo3_2.py",

浪里小飞侠的博客 4201

陆地观测卫星数据服务平台深度体验:高分、中巴、资源系列影像的检索与下载技巧

本文深度解析国产陆地观测卫星数据服务平台的使用技巧,重点介绍高分、中巴、资源系列卫星影像的检索与下载方法。通过权限体系解析、高级检索策略、数据预处理等实战技巧,帮助用户高效获取高质量遥感数据,适用于环境监测、资源调查等多种应用场景。

eee77的博客 980

Aloudata 荣登“数智技术系列榜单”和“数据智能服务商 TOP30”

持续助力各行业数智化先进企业突破数据管理技术瓶颈,以更加敏捷、精准和可靠的数据交付驱动企业业务创新与经营提效

Aloudata的博客 667

【入门篇】第五章 第一次与 AI Agent 交互

本文介绍了OpenClaw中最基本的用户与AI Agent交互方式,剖析了Agent和Gateway两个核心组件的作用,通过简单示例展示了从用户请求到结果返回的完整执行流程,说明了最小交互过程对验证系统可用性的重要意义,为后续学习复杂任务执行机制奠定基础。

lanyv的博客 512

板蓝根挥发油微胶囊化技术及其在抗菌织物整理中的应用研究

微胶囊技术是一种通过成膜材料将具有反应活性或挥发性的液体或固体包封成微小颗粒的技术。该技术因其优异的缓释保护和物态改变性能,已在医药、食品、化妆品等多个领域得到广泛应用。本研究采用复凝聚法制备板蓝根挥发油的微胶囊,利用明胶和阿拉伯胶作为壁材,旨在提升其稳定性和抗菌性能。

qq_62634009的博客 584

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

下一篇: Python 实现:分治法提高大数阶乘计算速度
idealguy
博客等级 码龄20年 14粉丝 9原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值