当前位置:网站首页>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;
}
边栏推荐
- Is the low commission link on the internet safe? How to open an account for China Merchants Securities?
- MySQL winter vacation self-study 2022 12 (1)
- Global and Chinese markets for instant saliva testing devices 2022-2028: Research Report on technology, participants, trends, market size and share
- [leetcode] interview question 17.08 Circus tower
- What is the potential of pocket network, which is favored by well-known investors?
- [complimentary ppt] kubemeet Chengdu review: make the delivery and management of cloud native applications easier!
- A dichotomy of Valentine's Day
- The difference between objects and objects
- P3371 [template] single source shortest path (weakened version)
- Celebrate the new year | Suihua fire rescue detachment has wonderful cultural activities during the Spring Festival
猜你喜欢
![[C language] break and continue in switch statement](/img/ae/5967fefcf3262c9d3096e5c7d644fd.jpg)
[C language] break and continue in switch statement

Similarities and differences of text similarity between Jaccard and cosine
![[complimentary ppt] kubemeet Chengdu review: make the delivery and management of cloud native applications easier!](/img/3f/75b3125f8779e6cf9467a30fd7eeb4.jpg)
[complimentary ppt] kubemeet Chengdu review: make the delivery and management of cloud native applications easier!

Recommendation of knowledge base management system

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

Regular expressions and text processors for shell programming

Sorry, Tencent I also refused

老姜的特点

Analysis: misunderstanding of choosing WMS warehouse management system

Alibaba test engineer with an annual salary of 500000 shares notes: a complete set of written tests of software testing
随机推荐
[error record] configure NDK header file path in Visual Studio
[NLP] text classification still stays at Bert? Duality is too strong than learning framework
Test the influence of influent swacth on the electromagnetic coil of quartz meter
Iclr2022: how does AI recognize "things I haven't seen"?
[2021]NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections
Interview script of Software Test Engineer
Selenium library 4.5.0 keyword explanation (I)
Double efficiency. Six easy-to-use pychar plug-ins are recommended
It is the most difficult to teach AI to play iron fist frame by frame. Now arcade game lovers have something
Investment demand and income forecast report of China's building ceramics industry, 2022-2028
Global and Chinese markets of distributed control system (DCS) consumption 2022-2028: Research Report on technology, participants, trends, market size and share
[software testing] you haven't mastered these real interview questions of big companies?
2022 Software Test Engineer skill list, please check
Speed up the energy Internet of things. What can low-power Internet of things technology represented by Zeta do?
Ningde times and BYD have refuted rumors one after another. Why does someone always want to harm domestic brands?
Shell script three swordsman sed
What does redis do? Redis often practices grammar every day
Selenium library 4.5.0 keyword explanation (4)
Briefly understand the operation mode of developing NFT platform
Global and Chinese market of melting furnaces 2022-2028: Research Report on technology, participants, trends, market size and share