高斯消元
2014-04-23 10:20
357 查看
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++) ; } }
相关文章推荐
- STL 之 pair 源码剖析
- springMVC框架下JQuery传递并解析Json数据
- VB使用RES资源文件技巧
- iphone数据存储之-- Core Data的使用(一)
- 【Oracle 学习】Scott账号解锁
- thinkphp 内置函数详解
- IIS 和WAMP并存
- 把你送进世界500强企业的英文简历-应聘外企,一份高水准的简历必不可少。
- base.superclass.constructor.call(this,config)
- 数据库事务使用范例
- gcc参数详细介绍
- Leetcode全树类问题
- 状态模式
- 在使用MOS管时要注意的问题
- 开发 APP 最重要的 8 个细节
- EXTJS中的类继承
- 怎么实现每天自动更新订单状态
- ORA-00470: LGWR process terminated with error
- ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- android上传头像