高斯消元

double型  fabs 

double  a[maxn][maxn] , x[maxn] ;  //a[i][j] 系数矩阵 , a[i][n+1]  = y[i] , x解
int     n ;   //n个方程
void    guass(){
        int i , j , k ;
        double  sum , rate ;
        for(k = 1 ; k < n ;  k++){
             for(i = j = k ; i <= n ; i++) j = fabs(a[i][k]) > fabs(a[j][k]) ? i : j ;
             for(i = k ; i <= n+1 ; i++)  swap(a[j][i] , a[k][i]) ;
             for(i = k+1 ; i <= n ; i++)
                 for(rate = a[i][k]/a[k][k] , j = k ; j <= n+1 ; j++)
                      a[i][j] -= a[k][j]*rate ;
        }
        for(i = n ; i >= 1 ; i--){
            for(sum = 0 , j = i+1 ; j <= n ; sum += a[i][j]*x[j],j++) ;
            x[i] = (a[i][n+1] - sum)/a[i][i] ;
        }
}

double  Fix(double x){   // 将 -0.000 变成 0.00 ,结果输出Fix(x[])
        if(fabs(x) < 1e-4) return 0 ;
        return x ;
}


Xor 的高斯消元

int a[maxn][maxn] , x[maxn] ;
int     n ;
void    guass(){
        int i , j , k ;
        double  sum , rate ;
        for(k = 1 ; k < n ;  k++){
             for(i = k ; i <= n ; i++) if(a[i][k]){ j = i ; break ;}
             for(i = k ; i <= n+1 ; i++)  swap(a[j][i] , a[k][i]) ;
             for(i = k+1 ; i <= n ; i++){
                 if(a[i][k] == 0) continue ;
                 for(j = k ; j <= n+1 ; j++)
                      a[i][j] ^= a[k][j] ;
             }
        }
        for(i = n ; i >= 1 ; i--){
            x[i] = a[i][n+1] ;
            for(j = i+1 ; j <= n ; x[i] ^= (a[i][j]&&x[j]),j++) ;
        }
}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值