高斯消元
来源:互联网 发布:阿里通信卡的网络2g 编辑:程序博客网 时间:2024/05/01 08:50
普通高斯消元:
double a[1005][1005];double b[1005];double value[1005];inline void Swap(int A,int B){double temp;for(int i=1;i<=N;i++)swap(a[A][i],a[B][i]);swap(b[A],b[B]);}inline int Gauss(){int i,j,k;bool flag;for(i=1;i<=N;i++)//枚举列 {flag=0;for(j=i;j<=M;j++)//从第i行开始,找到一行a[j][i]不为0并交换 if(fabs(a[j][i])>eps){flag=1;Swap(i,j);break;}if(!flag)//都为0,那么矩阵的秩<N,多解 return 2;for(j=i+1;j<=M;j++){double temp=a[j][i]/a[i][i];a[j][i]=0;for(k=i+1;k<=N;k++)//////////// a[j][k]-=temp*a[i][k];b[j]-=temp*b[i];}//消元 }//搞成上三角 for(i=1;i<=M;i++){flag=0;for(j=1;j<=N;j++)if(fabs(a[i][j])>eps)flag=1;if(flag==0&&fabs(b[i])>eps)return 0;}//检查无解 0==x for(i=N;i>=1;i--){for(j=i+1;j<=N;j++){b[i]=b[i]-a[i][j]*value[j];a[i][j]=0.0;}value[i]=b[i]/a[i][i];}//有唯一解,根据算出的值将第i行第i列以后的系数消掉 return 1;}
高斯消元求解异或方程组:
int a[35][35];int b[35];int x[35];inline void Swap(int A,int B){double temp;for(int i=1;i<=30;i++)swap(a[A][i],a[B][i]);swap(b[A],b[B]);}inline int Gauss(){int i,j,k;bool flag;for(i=1;i<=30;i++)//枚举列 {flag=0;for(j=i;j<=30;j++)//从第i行开始,找到一行a[j][i]不为0并交换 if(a[j][i]!=0){flag=1;Swap(i,j);break;}if(!flag)//都为0,那么矩阵的秩<N,多解 return 2;for(j=i+1;j<=30;j++){if(a[j][i]){for(k=i;k<=30;k++)//////////// a[j][k]^=a[i][k];b[j]^=b[i];}}//消元 }//搞成上三角 for(i=1;i<=30;i++){flag=0;for(j=1;j<=30;j++)if(a[i][j]!=0)flag=1;if(flag==0&&b[i]==1)return 0;}//检查无解 0==x for(i=30;i>=1;i--){for(j=i+1;j<=30;j++){b[i]^=(a[i][j]*x[j]);a[i][j]=0;}x[i]=b[i]/a[i][i];}//有唯一解,根据算出的值将第i行第i列以后的系数消掉 return 1;}
0 0
- 高斯消元
- 高斯消元
- 高斯消元
- 高斯消元
- 高斯消元
- 高斯消元
- 高斯消元
- ##高斯消元##
- 高斯消元
- 高斯消元
- 高斯消元
- 高斯消元
- 高斯消元
- 高斯消元
- 高斯消元
- 高斯消元
- 高斯消元
- 高斯消元
- c语言-指针统计字符串长度,字符串连接
- 在Spydroid-ipcamera基础上做推流的实现之二
- Particle for alexa smart home skill (4)
- OpenCV图像处理和图像识别常用函数
- 关于ctrl组合键,你知道多少?
- 高斯消元
- Android 屏幕适配方案
- iOS9新特性需要注意的问题
- 虚拟机lnmp一键安装后忘记mysql的root密码的解决方法
- “Xavier”初始化方法
- oracle-简单的存储过程demo
- kuangbin求带飞DP1 Doing HomeWork(动态规划+状态压缩)
- web项目和Java项目的区别
- BZOJ2526 [Poi2011]Inspection