#pi #numerical

bin+lib compute-pi

一个Rust库,用于计算到数百万位的π

6个版本 (1个稳定)

1.0.0 2024年8月24日
0.2.5 2024年3月21日
0.1.3 2024年3月15日

数学类别中排名第375

每月下载量27

MITLGPL-3.0+

9KB
72

compute-pi

compute-pi使用高斯-勒让德算法计算π的任意位数,您的PC上计算1百万位只需几秒钟。

安装

您可以将此crate包含在您的Cargo.toml文件中,如下所示

[dependencies]
compute-pi = "1.0"

使用方法

要在Rust代码中使用compute_pi_str函数,请将以下内容添加到crate根目录

use compute_pi::compute_pi_str;

fn main() {
    // Specify the number of digits of Pi you want to compute
    let digits = 100;

    // Compute Pi
    let pi = compute_pi_str(digits);

    // Print calculated decimal
    println!("Pi to {} decimal places: {}", digits, pi);
}

命令行使用

您还可以从命令行使用compute-pi命令。安装crate后,运行以下命令

cargo install compute-pi

运行以下命令

compute-pi <digits>

<digits>替换为您要计算的π的位数。例如

compute-pi 100

这将打印出π到100位小数的结果。

性能

在MacBook Air(Apple M1,16 GB)上,计算到1百万位的π耗时1.5秒,到3亿2千万位的π耗时24分钟,但计算在10小时内没有完成3亿3千万位的π。同样,在Mac mini(Apple M1,16 GB)上,计算到3亿2千万位的π,但计算在10小时内没有完成3亿3千万位的π。考虑到它并没有因为内存分配失败而引发panic,而是无限期地继续,推测计算耗时过长是由于内存交换。320百万位被认为是使用16 GB内存通过compute-pi计算出的最大位数。另一个限制是,由于rug::Float的精度定义为u32,所以位数不能超过1,292,913,983。使用compute-pi计算到320百万位的π的结果已经通过y-cruncher和Chudnovsky算法得到确认,与结果完全一致。

许可证

此crate遵循MIT许可证

依赖项

约2.5MB
约47K SLoC