尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Savage任意精度算术入门:整数、有理数与复数运算的7个实用技巧

Savage任意精度算术入门:整数、有理数与复数运算的7个实用技巧 Savage任意精度算术入门整数、有理数与复数运算的7个实用技巧【免费下载链接】savageA primitive computer algebra system项目地址: https://gitcode.com/gh_mirrors/sa/savageSavage 是一个用纯 Rust 编写的开源计算机代数系统提供任意精度整数、有理数与复数运算整个系统编译后仅 2.5 MB、零外部依赖。无论你是被计算器 15 位有效数字限制困扰的开发者还是想验证大数计算结果的数学爱好者这篇入门教程都会带你快速上手 Savage 的 7 个实用技巧从零开始掌握精确算术。先了解为什么需要任意精度算术普通计算器和小数浮点类型如 float、double在位数上存在天然上限算1.1 ^ 100时浮点结果只有大约 16 位有效数字而 Savage 能直接给出70 多位精确小数in: 1.1 ^ 100 out: 13780.612339822270184118337172089636776264331200038466433146477552154985209...它的设计哲学是正确性优先不追求极限性能但保证结果精确无误核心数值类型定义见savage_core/src/expression.rs。一键安装需要 Rust 1.56 或更高版本cargo install savage技巧1无上限的大整数运算在 Savage REPL 中直接输入任意大的整数表达式即可唯一的限制是你的内存。试试这个 420 位的结果in: 3 ^ 4 ^ 5 out: 373391848741020043532959754184866588225409776783734007750636931722079040617... 底层依赖 Rust 生态的numcrate 提供的BigInt类型这是任意精度运算的关键见 README 的致谢部分。技巧2有理数运算结果永不出错只要输入使用分数形式Savage 就始终以精确的分数输出不会像浮点数那样产生0.1 0.2 ≠ 0.3的烦恼in: 6/5 * 3 out: 18/5分数会保持约分状态适合需要严格精确的财务、物理或算法计算场景。技巧3自动识别十进制与分数输出Savage 会根据你的输入风格自动选择输出格式输入含小数点输出就是十进制输入含分数输出就是分数。in: 1.2 * 3 out: 3.6这个智能行为由savage_core/src/print.rs中的十进制表示算法实现——它会判断分母是否只含质因子 2 和 5从而决定能否用有限小数表示。技巧4复数运算零配置变量i被预定义为虚数单位直接用标准数学记号输入复数in: (1 i) ^ 12 out: -64复数的类型定义Complex与整数、有理数一样都是 expression.rs 中Expression枚举的一等公民参与运算时会自动遵循类型提升规则。技巧5阶乘轻松突破常规精度大数组合计算是任意精度算术的经典应用场景in: factorial(10) out: 3628800factorial是内置函数之一实现在savage_core/src/functions/combinatorics.rs且带自动类型检查——传入非整数会直接给出清晰错误提示。技巧6内置数论函数验证大素数Savage 内置了由高速素数筛库primal驱动的数论函数位于savage_core/src/functions/number_theory.rsin: is_prime(2^31 - 1) // 梅森数 M31 out: true in: nth_prime(10^7) // 第 1000 万个素数 out: 179424673is_prime、nth_prime、prime_pi三个函数覆盖了素数研究中最常用的查询。技巧7把 Savage 当作 Rust 库集成所有代数能力都封装在savage_corecrate 中几行代码即可在自己的 Rust 程序里做符号运算use savage_core::expression::Expression; use savage_core::helpers::*; let lhs det([[a, 2], [3, a]]).parse::Expression().unwrap(); let rhs pow(var(a), int(2)) - int(6); assert_eq!(lhs.evaluate(HashMap::new()), Ok(rhs));解析逻辑基于 chumsky 解析器savage_core/src/parse.rs简化引擎在savage_core/src/simplify.rs。注意savage_core采用 AGPL 许可证商用前请了解其条款见 Cargo.toml 与工作区配置。常见问题速答问题答案需要安装什么仅需 Rust 1.56一条cargo install savage命令支持矩阵运算吗支持向量/矩阵是一等公民det可符号化求行列式有 GUI 吗暂无纯终端 REPL带语法高亮与多行输入可以商用吗AGPL 协议需遵守开源义务写在最后Savage 目前仍处于早期开发阶段适合学习和实验暂不建议用于生产环境。它聚焦工程师日常会用到的基础数学——任意精度算术、符号表达式、逻辑与线性代数。项目路线图还包括用户自定义变量、Jupyter 内核和更强大的化简能力感兴趣的开发者可以直接阅读 savage_core/src/lib.rs 了解模块全貌或从贡献代码开始参与这个项目。【免费下载链接】savageA primitive computer algebra system项目地址: https://gitcode.com/gh_mirrors/sa/savage创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表