zoukankan      html  css  js  c++  java
  • [zz]数论小白都能看懂的线性方程组及其解法

    https://www.luogu.com.cn/blog/ShineEternal/linear-equation-group

    #include<cstdio>
    #include<cmath>
    #include<iostream>
    using namespace std;
    double a[105][105];
    int main()
    {
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n+1;j++)
            {
                scanf("%lf",&a[i][j]);
            }
        }
        for(int i=1;i<=n;i++)//枚举列(项) 
        {
            int m=i;
            for(int j=i+1;j<=n;j++)//选出该列最大系数 
            {
                if(fabs(a[j][i])>fabs(a[m][i]))//fabs是取浮点数的绝对值的函数
                {
                    m=j;
                }
            }
            for(int j=1;j<=n+1;j++)//交换
            {
                swap(a[i][j],a[m][j]);
            }
            if(a[i][i]==0)//最大值等于0则说明该列都为0,肯定无解 
            {
                printf("No Solution
    ");
                return 0;
            }
            for(int j=1;j<=n;j++)//每一项都减去一个数
            {
                if(j!=i)//不是主元那一项 
                {
                    double d=a[j][i]/a[i][i];
                    for(int k=i+1;k<=n+1;k++)
                    {
                        a[j][k]-=a[i][k]*d;
                    }
                }
            }
        }
        for(int i=1;i<=n;i++)//最后的结果系数可能不为1,所以记得消去常数 
        {
            printf("%.2lf
    ",a[i][n+1]/a[i][i]);
        }
        return 0;
    }
  • 相关阅读:
    Chap5:操作文件和目录[The Linux Command Line]
    ABC3
    ABC2
    ABC
    Spring MVC / Boot
    Usefull Resources
    [ Learning ] Design Pattens
    [ Learning ] Spring Resources
    URL Resources
    [ Windows BAT Script ] BAT 脚本获取windows权限
  • 原文地址:https://www.cnblogs.com/cutemush/p/12276029.html
Copyright © 2011-2022 走看看