写了一个BBP算法的实现库,欢迎讨论

BBP 算法可以直接计算 π 的第 n 个十六进制数字,而无需计算前面的所有数字。

我的仓库:https://github.com/davelet/bbp


先来说说π这个老朋友吧。π,3.14159......,数学界的"网红",从古希腊的阿基米德开始,就有无数人试图用它丈量圆的秘密。为什么这么迷人?因为它是个无理数,十进制小数点后无限不循环,藏着无穷的奥秘。想象一下,你想知道π的第1000位是什么?传统方法呢?得从头算起,一位一位啃,像啃一根永不完的甘蔗,累不累啊?早年的数学家们用多边形逼近法,或者级数展开,比如莱布尼茨公式:π/4 = 1 - 1/3 + 1/5 - 1/7 + ...... 收敛得慢,算到几百位就得花好几天机时。更别提现代超级计算机了,算到万亿位也得从头来过。

不过1995年,一切都变了。那一年,加拿大数学家 Simon Plouffe 在玩一个叫PSLQ的整数关系发现算法时,意外挖到了金矿。他和 David Bailey、Jonathan Borwein 合作,发表了BBP公式(Bailey-Borwein-Plouffe公式)。

这公式一出,数学圈炸锅了!为什么?因为它允许你直接计算π的任意一位十六进制数字,而不用管前面的那些。

十六进制?对,就是我们电脑里常见的0-9和A-F那种。为什么用十六进制?因为公式设计得特别巧妙,和二进制、十六进制兼容,计算起来高效。

Plouffe当时用一台普通的电脑,就算出了π的第100万位------不是从头算,而是直奔那里!这感觉就像科幻小说里的"传送门",啪的一声,你就到目的地了。


我在仓库里提供了算法和项目的说明,欢迎大家讨论:README 读我

相关推荐
superman超哥18 小时前
Rust String与&str的内部实现差异:所有权与借用的典型案例
开发语言·后端·rust·rust string·string与str·内部实现·所有权与借用
愈努力俞幸运18 小时前
rust安装
开发语言·后端·rust
superman超哥19 小时前
Rust 范围模式(Range Patterns):边界检查的优雅表达
开发语言·后端·rust·编程语言·rust范围模式·range patterns·边界检查
土豆125019 小时前
Rust Trait 进阶:打造你的类型系统超能力
rust·编程语言
小白路过20 小时前
node-sass和sass兼容性使用
前端·rust·sass
peterfei20 小时前
AI 把代码改崩溃了?若爱 (IfAI) v0.2.7 发布:程序员的“后悔药”真的来了!
rust·ai编程
TDengine (老段)20 小时前
TDengine Rust 连接器进阶指南
大数据·数据库·物联网·rust·时序数据库·tdengine·涛思数据
superman超哥21 小时前
Rust 或模式(Or Patterns)的语法:多重匹配的优雅表达
开发语言·后端·rust·编程语言·rust或模式·or patterns·多重匹配
charlie1145141911 天前
从0开始的机器学习(笔记系列)——导数 · 多元函数导数 · 梯度
人工智能·笔记·学习·数学·机器学习·导数
superman超哥1 天前
Rust VecDeque 的环形缓冲区设计:高效双端队列的奥秘
开发语言·后端·rust·rust vecdeque·环形缓冲区设计·高效双端队列