chemical_equation_balancer/equation_solver.py

27 lines
741 B
Python

def solve_equation(eq):
"""
配平化学方程式,返回配平后的化学方程式
:param eq: 化学方程式,
格式为
{
'left': [ {
'atoms': [ {'元素名称': 元素个数}, {'元素名称': 元素个数}, ... ],
'coefficient': 系数,
'pretty_name': 化学式的字符串表示
}, ... ],
'right': [ ... ]
}
:return: 配平后的化学方程式,与输入格式相同
若无法配平,则返回 None
"""
# 使用加减消元法解方程组
# 依据:反应前后,每个元素的个数相等
# 用二维数组表示方程组的系数,用一维数组表示方程组的常数项