首页 > 其他 > 详细

【高斯消元】CDOJ1784 曜酱的线性代数课堂(二)

时间:2017-10-05 10:24:42      阅读:256      评论:0      收藏:0      [点我收藏+]

高斯消元求矩阵秩板子。

#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
const double EPS=0.00000001;
#define N 105
int n,m;
double B[N][N],A[N][N];
int guass_jordan()
{
    memcpy(B,A,sizeof(A));
    for(int i=1;i<=n;++i)
      {
        int pivot=i;
        for(int j=i+1;j<=n;++j)
          if(fabs(B[j][i])>fabs(B[pivot][i]))
            pivot=j;
        swap(B[i],B[pivot]);
        if(fabs(B[i][i])<EPS){
        	return i-1;
        }
        for(int j=i+1;j<=m;++j)
          B[i][j]/=B[i][i];
        for(int j=1;j<=n;++j)
          if(i!=j)
            for(int k=i+1;k<=m;++k)
              B[j][k]-=B[j][i]*B[i][k];
      }
    return n;
}
int main()
{
	while(scanf("%d%d",&n,&m)!=EOF){
		memset(A,0,sizeof(A));
		for(int i=1;i<=n;++i){
			for(int j=1;j<=m;++j){
				scanf("%lf",&A[i][j]);
			}
		}
		printf("%d\n",guass_jordan());
	}
    return 0;
}

【高斯消元】CDOJ1784 曜酱的线性代数课堂(二)

原文:http://www.cnblogs.com/autsky-jadek/p/7628139.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!