Syntax
支持范围
()嵌套圆括号、方括号与花括号,如 Ca(OH)2、K4[Fe(CN)6]。
·结晶水与加合物,如 CuSO4·5H2O(也支持英文句点)。
±离子电荷,如 Fe3+、SO4^2-、NH4+、e-。
aq状态符号会保留显示,如 (s)、(l)、(g)、(aq)。
支持无空格离子写法,如 Ca2++Cl-、H++OH-,也支持 Fe2+ + MnO4-。为避免歧义,正离子与下一物质之间若不留空格,请使用两个连续的 +:前一个表示电荷,后一个表示物质分隔。
算法说明
程序把每种物质视为未知系数,将每一种元素的原子数写成守恒方程;若检测到离子,则再加入一行电荷守恒。随后使用 BigInt 支持的精确有理数高斯消元求零空间,再统一化为最大公约数为 1 的正整数系数,因此不会受到普通浮点数舍入误差影响。