当前位置:网站首页>Gauss elimination method and template code
Gauss elimination method and template code
2022-07-04 00:33:00 【Alkali!】
Gauss elimination method for solving linear equations
Ideas and steps

The last one ( The approximate ) Ladder matrix 
Then reduce it to an approximate identity matrix , We can get the solution
Template code
// Background :AcWing 883
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=110;
const double eps=1e-8; // Do not put double Misspelled int, The reason why it should be less than 1e-8, Because c++ A drawback of floating point numbers , So less than eps when , It can be approximately regarded as 0
double a[N][N]; // Storage augmentation matrix
int n;
int gauss()
{
int r,c; //r Indicates the current line to be processed
for(r=0,c=0;c<n;c++) // Traverse each column
{
int t=r;
for(int i=r;i<n;i++) // Find the row with the largest element in this column
if(fabs(a[i][c])>fabs(a[t][c]))
t=i;
if(fabs(a[t][c])<eps) continue; // If the element is the largest , still 0, Then skip , Go to the next column
for(int i=c;i<=n;i++) swap(a[t][i],a[r][i]); // Put the selected line in “ At the top ” Go to
for(int i=n;i>=c;i--) a[r][i] /=a[r][c]; // Put the first in this line c Into 1
for(int i=r+1;i<n;i++) // Put the second line c Column elimination into 0
if(fabs(a[i][c])>eps)
{
for(int j=n;j>=c;j--)
a[i][j]-=a[i][c]*a[r][j];
}
r++;
}
if(r<n) // If the final step is not strictly complete
{
for(int i=r;i<n;i++)
if(fabs(a[i][n])>eps) //0== Non zero case , unsolvable
return 2;
return 1; //0==0 The situation of , There are infinite solutions
}
for(int i=n-1;i>=0;i--) // Find the solution from bottom to top
for(int j=i+1;j<n;j++)
a[i][n]-=a[j][n]*a[i][j];
return 0;
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++)
for(int j=0;j<n+1;j++)
scanf("%lf",&a[i][j]);
int t=gauss();
if(t==2)
printf("No solution");
else if(t==1)
printf("Infinite group solutions");
else
for(int i=0;i<n;i++)
{
if(fabs(a[i][n])<eps)
a[i][n]=0;
printf("%.2lf\n",a[i][n]);
}
return 0;
}
Gauss elimination method for solving XOR linear equations
Ideas and steps
It is consistent with Gauss elimination method in solving linear equations 

Template code
// Background :AcWing 884
#include<iostream>
#include<algorithm>
using namespace std;
const int N=110;
int n;
int a[N][N];
int gauss()
{
int r,c;
for(r=0,c=0;c<n;c++) // Traverse each column
{
int t=r;
for(int i=r;i<n;i++)
if(a[i][c]) // Find No c The first in the column is not 0 All right
{
t=i;
break;
}
if(!a[t][c]) continue; // If it's all 0 了 , Just continue
for(int i=c;i<=n;i++) swap(a[r][i],a[t][i]); // Put this line on top
for(int i=r+1;i<n;i++) // Delete the following line with the selected line , The first c Column elimination as 0
if(a[i][c])
for(int j=c;j<=n;j++)
a[i][j]^=a[r][j];
r++;
}
if(r<n)
{
for(int i=r;i<n;i++)
if(a[i][n])
return 2;
return 1;
}
for(int i=n-1;i>=0;i--)
for(int j=i+1;j<n;j++)
if(a[i][j])
a[i][n]^=a[j][n];
return 0;
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++)
for(int j=0;j<n+1;j++)
scanf("%d",&a[i][j]);
int res=gauss();
if(res==2)
printf("No solution");
else if(res==1)
printf("Multiple sets of solutions");
else
for(int i=0;i<n;i++)
printf("%d\n",a[i][n]);
return 0;
}
边栏推荐
- What insurance products should be bought for the elderly?
- 2022 Software Test Engineer skill list, please check
- How will the complete NFT platform work in 2022? How about its core functions and online time?
- 【leetcode】300. Longest increasing subsequence (dynamic programming, dichotomy)
- Analysis: misunderstanding of choosing WMS warehouse management system
- Global and Chinese market of melting furnaces 2022-2028: Research Report on technology, participants, trends, market size and share
- Global and Chinese market of breast cancer imaging 2022-2028: Research Report on technology, participants, trends, market size and share
- What is the Valentine's Day gift given by the operator to the product?
- P1629 postman delivering letter
- Correlation analysis summary
猜你喜欢

Smart fan system based on stm32f407
![[PHP basics] cookie basics, application case code and attack and defense](/img/7c/551b79fd5dd8a411de85c800c3a034.jpg)
[PHP basics] cookie basics, application case code and attack and defense

Struct in linked list

(Introduction to database system | Wang Shan) Chapter V database integrity: Exercises

Vscode regular match replace console log(.*)

Data mining vs Machine Learning: what is the difference between them? Which is more suitable for you to learn

Report on prospects and future investment recommendations of China's assisted reproductive industry, 2022-2028 Edition

STM32 key light
![[complimentary ppt] kubemeet Chengdu review: make the delivery and management of cloud native applications easier!](/img/28/fc05f2e8d53cf81fd061c799090022.jpg)
[complimentary ppt] kubemeet Chengdu review: make the delivery and management of cloud native applications easier!

Idea set class header comments
随机推荐
Is user authentication really simple
Selenium library 4.5.0 keyword explanation (II)
[Mongodb] 2. Use mongodb --------- use compass
[CSDN Q & A] experience and suggestions
Introducing Software Testing
Entropy and full connection layer
不得不会的Oracle数据库知识点(二)
Make small tip
Arc 135 supplementary report
What is the future of software testing industry? Listen to the test veterans' answers
Private project practice sharing populate joint query in mongoose makes the template unable to render - solve the error message: syntaxerror: unexpected token r in JSON at
The frost peel off the purple dragon scale, and the xiariba people will talk about database SQL optimization and the principle of indexing (primary / secondary / clustered / non clustered)
[GNN] hard core! This paper combs the classical graph network model
(Video + graphics and text) introduction to machine learning series - Chapter 4 naive Bayes
Global and Chinese market of breast cancer imaging 2022-2028: Research Report on technology, participants, trends, market size and share
Kubedl hostnetwork: accelerating the efficiency of distributed training communication
[complimentary ppt] kubemeet Chengdu review: make the delivery and management of cloud native applications easier!
NLP pre training technology development
Software testers, how can you quickly improve your testing skills? Ten minutes to teach you
[cloud native topic -48]:kubesphere cloud Governance - operation - overview of multi tenant concept