5分钟快速上手Savage:从零安装到第一个符号计算的新手入门教程
5分钟快速上手Savage从零安装到第一个符号计算的新手入门教程【免费下载链接】savageA primitive computer algebra system项目地址: https://gitcode.com/gh_mirrors/sa/savageSavage是一个用纯 Rust 从零编写的免费开源符号计算系统Computer Algebra System。它把整个系统编译成单个仅 2.5 MB、零依赖的可执行文件内置任意精度算术、符号表达式化简、矩阵行列式与数论函数。本教程将带你在 5 分钟内完成安装敲下第一个符号计算表达式。一、Savage 是什么和 Sage 有什么区别名字里的 Savage 是对知名开源计算机代数系统 Sage 的致敬——但 Savage 走的是另一条路 Sage是几十个数学包的统一前端覆盖最前沿的研究级数学Savage是高度集成的单体系统只做工程师和日常使用者真正需要的基础数学。官方 README 把它的设计目标概括为一句话正确、简单、好用且按这个优先级排列。特性Savage 现在就能做到 ✅状态任意精度整数 / 有理数 / 复数运算✅已支持符号表达式输入、化简与求值✅已支持向量、矩阵一级支持系数可以是任意表达式✅已支持交互式 REPL语法高亮、历史持久化、多行输入✅已支持自定义变量与函数✅持续完善中内置帮助系统✅持续完善中更多数论 / 组合数学函数、Jupyter 内核规划中 项目目前处于早期开发阶段很适合学习和把玩还不太适合生产级严肃计算。一眼看懂源码结构整个项目非常小巧三个目录就能读完核心算法库savage_core/src/ —— 解析器 parse.rs、求值器 evaluate.rs、化简器 simplify.rs以及内置函数目录 savage_core/src/functions/number_theory.rs、linear_algebra.rs、logic.rs、combinatorics.rsREPL 命令解释器savage/src/main.rs输入处理见 savage/src/input.rs宏定义系统savage_macros/src/lib.rs用于声明带元数据、自动类型检查的内置函数二、Savage 安装两种最快上手方式方式一Cargo 一行命令安装推荐前提系统已安装Rust 1.56 或更高版本。cargo install savage执行成功后Savage 的 REPL 会被安装到 Cargo 二进制目录通常是$HOME/.cargo/bin之后在终端直接输入savage即可启动。方式二从源码克隆并运行如果你想边读源码边上手可以克隆仓库仓库地址https://gitcode.com/gh_mirrors/sa/savage在仓库根目录执行cargo run即可直接运行 REPL。官方说明详见 README.md 的 Installation 一节。三、第一次打开 REPL5 分钟算完三种数学启动后会出现in:提示符输入标准数学记法、按回车立刻得到out:结果。REPL 自带语法高亮、括号匹配高亮和多行输入输入体验接近专业数学软件。3.1 任意精度算术结果永不溢出Savage 的算术运算没有精度上限只受内存限制in: 1.1 ^ 100 out: 13780.6123398222701841183371720896367762643312000384664331464775521549852095523076769401159497458526446001 in: 3 ^ 4 ^ 5 out: 373391848741020043532959754184866588225409776783734007750636931722079040617265251229993688938803977220468765065431475158108727054592160858581351336982809187314191748594262580938807019951956404285571818041046681288797402925517668012340617298396574731619152386723046235125934896058590588284654793540505936202376547807442730582144527058988756251452817793413352141920744623027518729185432862375737063985485319476416926263819972887006907013899256524297198527698749274196276811060702333710356481结果会自动保持你输入的形式输入分数就输出分数输入小数就输出小数in: 6/5 * 3 out: 18/5 in: 1.2 * 3 out: 3.6i被预定义为虚数单位复数可以直接用标准记法输入in: (1 i) ^ 12 out: -643.2 第一个符号计算变量、化简与行列式这是 Savage 作为符号计算系统的核心能力——未赋值的a、b、c会被当作符号占位符表达式自动化简in: [a, b] - [a, c] out: [0, b - c]向量、矩阵是一等公民系数可以是任意表达式in: [a, b, c] * 3 out: [a * 3, b * 3, c * 3] in: [[1, 2], [3, 4]] * [5, 6] out: [17, 39]det函数可以符号化求行列式新手看到这一行基本就明白了它的定位 ✨in: det([[a, 2], [3, a]]) out: a ^ 2 - 63.3 定义自己的变量和函数in: a 1 in: b 2 in: a b out: 3 in: sum(x, y) x y in: sum(1, 2) out: 3四、数论与逻辑内置函数开箱即用数论函数由高速素数库驱动下面三个例子都是瞬间出结果 ⚡源码见 savage_core/src/functions/number_theory.rsin: is_prime(2^31 - 1) # 验证梅森数 M31 是素数 out: true in: nth_prime(10^7) # 第 1000 万个素数 out: 179424673 in: prime_pi(10^7) # 10^7 以内素数的个数 out: 664579逻辑运算同样强大Savage 即使面对未定义变量也会自动判定永真式与矛盾式in: a true out: a in: a || !a out: true in: a a out: false五、查看帮助REPL 里的?一键文档在 REPL 中直接输入?即可查看全部内置文档输入? 函数名可查看某个函数的用法与示例例如? det查看行列式函数。帮助文档源文件savage/help/header.md帮助展示逻辑savage/src/help.rs内置函数的元数据与类型检查声明savage_core/src/functions/mod.rs六、新手 5 分钟行动清单✅ 确认 Rust ≥ 1.56执行cargo install savage或克隆后cargo run✅ 启动 REPL先试1 1、6/5 * 3、(1 i) ^ 12✅ 敲下第一个符号计算det([[a, 2], [3, a]])✅ 用?浏览帮助逐个试一遍内置函数✅ 定义一个自己的函数比如sum(x, y) x y想继续深入建议阅读 savage_core/README.md 了解如何把 Savage 作为 Rust 库使用并通过 CHANGELOG.md 关注版本演进。祝你玩得开心【免费下载链接】savageA primitive computer algebra system项目地址: https://gitcode.com/gh_mirrors/sa/savage创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考