若题目要求在有无数多组解时输出任意一组该怎么处理?
直接回代好像不行。
比如增广矩阵:
1 & 1 & 0 & 1\\ 1 & 1 & 1 & 2\end{array}\right]$$ 显然有无穷多组解。 以下是我的高斯消元代码: ```cpp double a[N][N]; int gauss() { int c, r; for(c = 0, r = 0; c < n; c++) { int t = r; for(int i = r + 1; i < n; i++) if(fabs(a[i][c]) > fabs(a[t][c])) t = i; if(fabs(a[t][c]) < eps) continue; for(int i = c; i <= n; i++) swap(a[t][i], a[r][i]); for(int i = n; i >= c; i--) a[r][i] /= a[r][c]; for(int i = r + 1; i < n; i++) if(fabs(a[i][c]) > eps) for(int j = n; j >= c; j--) a[i][j] -= a[i][c] * a[r][j]; ++r; } if(r < n) { for(int i = r; i < n; i++) if(fabs(a[i][n]) > eps) return -1; //无解 } //唯一解或多解 for(int i = n - 2; ~i; i--) for(int j = i + 1; j < n; j++) a[i][n] -= a[i][j] * a[j][n]; return 1; } ``` 该方程的 $x_1, x_2$ 有无限个,但 $x_3$ 却只能等于 $1$,但若用高斯消元后的增广矩阵会变为: $$\left[\begin{array}{ccc|c}1 & 1 & 1 & 2\\ 0 & 0 & 1 & 1\\ 0 & 0 & 0 & 0\end{array}\right]$$ 直接回代就会将 $x_3$ 钦定为 $0$,导致解错误。 请问有没有方法能解决这个问题?