刷清橙OJ--A1083.解线性方程组
来源:互联网 发布:java 方法区 内存溢出 编辑:程序博客网 时间:2024/05/22 10:26
问题:
A1083. 解线性方程组
时间限制:1.0s 内存限制:512.0MB
总提交次数:2922 AC次数:609 平均分:53.62
问题描述
给定线性方程组:
Ax=b
请给出它的解。
其中A是一个n*n的可逆矩阵,表示方程组的系数,b是一个给定的列向量,x是所求的列向量。
你可以在你的代数与几何书中找到一些关于这个线性方程组的解法,其中高斯消元法是一种比较容易编程的方法。
输入格式
输入的第一行包含一个正整数n,n不大于10。
接下来n行,每行n个实数,表示A矩阵。
接下来n行,每行一个实数,表示b向量。
输出格式
输出n行,每行一个实数,四舍五入保留两位小数,表示你求得的向量x。
样例输入
2
1.0 0.0
0.0 1.0
3.0
5.0
样例输出
3.00
5.00
样例输入
2
1.0 1.0
1.0 -1.0
100.0
60.0
样例输出
80.00
20.00
代码:
#include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> using namespace std; double a[15][15],x[15]; int main() { int i=0,j=0,r=0,n=0; scanf("%d",&n); for(i=1; i<=n; i++) for(j=1; j<=n; j++) scanf("%lf", &a[i][j]); for (int i=1; i<=n; i++) scanf("%lf", &a[i][n+1]); int k=1; while(k<=(n-1)) { double max=-1; for(i=k; i<=n; i++) if(fabs(a[i][k])>max) { max=a[i][k]; r=i; } for(j=1; j<=n+1; j++) { double p=a[k][j]; a[k][j]=a[r][j]; a[r][j]=p; } for(i=k+1; i<=n; i++) for(j=k+1; j<=n+1; j++) a[i][j]-=a[i][k]* a[k][j]/ a[k][k]; k++; } double sum=0; x[n]=(a[n][n+1])/(a[n][n]); for(k=n-1;k>=1;k--) { for(j=k+1;j<=n;j++) sum+=(a[k][j])*(x[j]); x[k]=(a[k][n+1]-sum)/(a[k][k]); sum=0; } for(i=1;i<=n;i++) printf("%.2lf\n",x[i]+0.00000001); return 0; }个人想法:代码来自试题讨论
阅读全文
0 0
- 刷清橙OJ--A1083.解线性方程组
- PAT A1083
- PAT-A1083
- 求线性方程组的解
- Gauss-Seidel解线性方程组
- 求线性方程组的解
- 迭代法解线性方程组
- 追赶法解线性方程组
- Eigen解线性方程组
- 高斯消元,解线性方程组
- 线性方程组
- 线性方程组
- 线性方程组
- 线性方程组
- 线性方程组
- 线性方程组
- A1083. List Grades (25)
- PAT a1083题解
- Jupyter
- 欧拉定理——洛谷 P1405 苦恼的小明
- 修改目录下所有图片的尺寸
- JAVA之冒泡(Bubble)排序
- 在windows上实现java6和Java8共存解决办法
- 刷清橙OJ--A1083.解线性方程组
- 生成目录下所有图片的路径
- 搜狗拼音设置
- 文件层次结构
- 分段错误
- [bzoj 1066][SCOI2007]蜥蜴
- JAVA之选择排序
- JAVA之插入排序
- 异常类自定义封装