前几天复习了下高斯消元法,代码打着打着发现和思路有点问题
洛谷P3389,高斯消元法模板
算法中在第一步,将碰到第一个比1,1大的数
第一行和第j行交换,之后的循环中,却用下面的较小数除以较大数,
得出来的数误差明显增大。
例如
2 1 1 1
6 2 1 -1
-2 2 1 7
先循环枚举到了6>2,然后第一行和第二行交换变成
6 2 1 -1
2 1 1 1
-2 2 1 7
然后从第二行开始枚举要除的数。
用2/6,得到0.333333;
Q:既然交换过后还是用的小数除以大数,交换的优势在哪,又为什么要这样除。