关于 MathTools

MathTools 在做什么,以及它如何保持精确。

MathTools 是一组 20 多个日常数学小工具——从分数、百分比到矩阵、特征值和逐步展示的微积分。每个工具只做一件事,并且摊开完整的演算过程,而不是只给最终结果;许多主题还配有随机生成的练习题,方便自主训练。

该精确的地方就精确

多数工具用精确的分数而不是小数来计算。于是 0.75 全程保持 3/4,舍入误差根本无从混入。[[4,7],[2,6]] 的逆矩阵显示为 3/5、−7/10、−1/5、2/5,而不是 0.6 和 −0.7。分数跑在大整数上,所以大阶乘也不会溢出。

有些结果天生是无理数——奇异值、许多特征值、任意角度的正弦。这时工具会改用数值方法,并如实标注,而不是拿近似值冒充精确值。

看清演算过程

每次计算都附带完整的解答。矩阵工具在每次行变换后展示增广矩阵,算术工具逐项拆解——许多工具还会把结果画出来:直线、抛物线、直方图,或定积分下方的阴影面积。步骤都编了号,你可以跟着思路走,也可以自己核对结果。

找到合适的工具

  • 代数 — 矩阵求逆、行列式、矩阵运算与矩阵幂、线性方程组、一元二次方程、配方法、直线方程、多项式除法、多项式因式分解、特征值与特征向量、对角化、奇异值分解。
  • 概率统计 — 排列组合(nPr、nCr、阶乘)、二项分布、描述性统计(均值、中位数、众数、方差、标准差)以及含 z 分数与百分位的正态分布。
  • 分析 — 多项式导数与积分、交互式三角形求解器、单位圆、角度与弧度、等差与等比数列、对数,以及精确根式的勾股定理。
  • 数制 — 在 2 到 36 的任意进制中换算与计算、精确分数运算、指数、最大公约数与最小公倍数、百分比、比、质因数分解、科学计数法。
  • 生活中的数学 — 含还款计划的复利、(连续)折扣、小费与分账,以及采用精确国际换算因子的单位换算。

底层实现

MathTools 运行在 Nuxt 和 Nuxt UI 之上。真正的数学逻辑放在一个个小的 TypeScript 模块里,每个都有自己的单元测试,所以可以脱离界面单独验证逻辑。

经过测试,而非碰运气

每个工具背后的数学都放在小巧、纯粹的 TypeScript 模块里——而且每个模块都自带单元测试。500 多个 Vitest 测试验证精确的分数结果、奇异矩阵、除以零、空输入等边界情况,并确保每个工具真正输出完整的解题步骤。

氛围编程

说实话,这个网站是「氛围编程」出来的:人出想法、选工具、做决定,AI 写了大部分代码、文案和翻译。但氛围不能保证正确性——所以每一处数学都靠上面 500 多个单元测试钉死,而不是靠信心。