一、 题意简述: 本题的要求就是将输入的化学方程式配平。二、 算法分析: 题目要求配平的化学方程式只有复分解反应、氧化还原反应两种,但按照化学课本上的方法分别解决这两种方程式的配平问题具有相当的难度,这促使我们转而寻找新的思路。 化学反应具有"原子守恒"的性质,即反应前后原子的种类、个数都不变。因此很容易联想到利用这一点采用解方程的办法来解决这个问题。 例如,方程式: 设反应物、生成物前的系数依次为,,,,根据"原子守恒"原理,则 对于元素: 对于元素: 对于元素: 对于元素: 对于元素: 将以上五个方程联立,可以解出无数多组解,我们取其中一组最小正整数解 即为本题的答案。 再来看一组无解的数据。 采用上述办法列出方程组: 根据3个方程不能解出5个未知数的比例关系,明显无解。 下面我们来讨论具体的实现过程。 1、将化学方程式转化成方程组。 顺序扫描整个化学方程式,为每种元素列出一个方程。这一步难度不大,需要注意的是对括号的处理。 2、解这个方程组,若能确定各系数的比例关系,则输出一组最小正整数解;否则,输出"No solution"。 我们知道,要确定n个数之间的比例关系,必须要知道n-1个非线性相关的方程。也就是说,我们将化学方程式转化为方程组后,不必理会到底有几个方程,也不必理会有几个方程是线性相关的,只要将这个方程组当作(n-1)*n的矩阵方程来解即可。 采用高斯消元法来解方程,过程如下: a. 从第一行开始顺序扫描。 b. 若第i行第i列为0,则在第i行以后的行中寻找第i列不为0的行,如果有,将其与第i行交换;否则无解。 c. 将第i行以下各行的第i列消为0。然后接着扫描下一行。 再来看看消元的结果。如: 消元后得到如下矩阵: 由最后一行可知,3= 即与 的最简整数比为1:3 ,我们不妨令=1 ,=3 ,再依次代入第二行、第一行,就可以解出=1 ,=3 ,问题已得到解决。 需要指出的是,根据方程最后一行仅能得出与的最小整数比,它并不是最终的答案。我们再来看这个化学方程式。 经高斯消元后,得到: 当=2,=3时,根据方程组的第二行,= ,不符合题意。此时,就要进行适当的扩倍。 如果无法解出与,或者解出某一个=0,则无解。三、 小结 线性方程组是信息学竞赛中的一种重要数学模型,对于某一类问题它可以提供是一种快速、高效的解法。因此,注意培养自己的建立数学模型的能力是十分必要的。
作 者:周牧昕 来 源:福州三中 共有1984位读者阅读过此文
发送邮件 保存页面 打印文章 HTML版本 发表评论
关于本站 | 合作伙伴 | 联系方式 大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号