#大整数 #大数 #数值

不使用 std num-bigint

Rust的大整数实现

30个版本

0.4.6 2024年6月27日
0.4.4 2023年8月22日
0.4.3 2021年11月3日
0.4.0 2021年3月5日
0.1.33 2016年7月12日

#37 in 数学

Download history 1188984/week @ 2024-05-03 1283222/week @ 2024-05-10 1277255/week @ 2024-05-17 1282043/week @ 2024-05-24 1475415/week @ 2024-05-31 1497271/week @ 2024-06-07 1428829/week @ 2024-06-14 1465763/week @ 2024-06-21 1395437/week @ 2024-06-28 1524191/week @ 2024-07-05 1472879/week @ 2024-07-12 1489386/week @ 2024-07-19 1493511/week @ 2024-07-26 1515639/week @ 2024-08-02 1653932/week @ 2024-08-09 1589781/week @ 2024-08-16

6,548,133 每月下载量
8,806 个Crate中(直接使用 1,074 个)

MIT/Apache

295KB
7.5K SLoC

num-bigint

crate documentation minimum rustc 1.60 build status

Rust的大整数类型,包括 BigIntBigUint

用法

将此添加到您的 Cargo.toml

[dependencies]
num-bigint = "0.4"

功能

std crate 功能默认启用,并在 Rust 1.36 及之前以及 alloc crate 稳定之前是强制性的。如果您使用 num-bigint 时没有启用默认功能 default-features = false,则必须手动启用 std 功能,如果您的编译器版本不够新。

随机生成

num-bigint 支持在启用 rand 功能时生成随机大整数。要启用它,包括 rand:

rand = "0.8"
num-bigint = { version = "0.4", features = ["rand"] }

注意,您必须使用与 num-bigint 兼容的 rand 版本: 0.8

版本

发布说明可在 RELEASES.md 中找到。

兼容性

num-bigint crate 已针对 rustc 1.60 及更高版本进行测试。

替代方案

尽管 num-bigint 力求在纯 Rust 代码中提供良好的性能,但其他 crate 可能会以不同的权衡提供更好的性能。以下表格简要比较了几个替代方案。

Crate 许可证 最小 rustc 实现 功能
num-bigint MIT/Apache-2.0 1.60 纯 Rust 动态宽度,数论函数
awint MIT/Apache-2.0 1.66 纯 Rust 固定宽度,堆或栈,连接宏
bnum MIT/Apache-2.0 1.65 纯 Rust 固定宽度,与 Rust 原始类型(包括浮点数)相匹配
crypto-bigint MIT/Apache-2.0 1.73 纯 Rust 固定宽度,仅堆栈
ibig MIT/Apache-2.0 1.49 纯 Rust 动态宽度,数论函数
rug LGPL-3.0+ 1.65 通过 gmp-mpfr-sys捆绑GMP 包含 GMP、MPFR 和 MPC 的所有功能

许可证

许可证如下之一

任选其一。

贡献

除非您明确声明,否则您有意提交以包含在作品中的任何贡献(根据Apache-2.0许可证定义),应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~140–610KB
~11K SLoC