• 代数与概率


    矩阵一些定义

    矩阵乘法理解

    矩阵乘法规则分析

     

     

    矩阵乘法模板 

    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn=107;
    int c[maxn][maxn],a[maxn][maxn],b[maxn][maxn],n;
    void multi(int a[][maxn],int b[][maxn],int n){
    //n是矩阵大小,n<maxn,二维数组传参, 
    //第一维可以省略,第二维不可以省略 
        memset(c,0,sizeof c);
        for(int i=0;i<n;i++){
              for(int j=0;j<n;j++){
                 int sum=0;
                  for(int k=0;k<n;k++)
                  sum+=a[i][k]*b[k][j];
                  c[i][j]=sum;
            }
        }
    }
    int main(){
        scanf("%d",&n);
        for(int i=0;i<n;i++)
             for(int j=0;j<n;j++)
                scanf("%d",&a[i][j]);
        for(int i=0;i<n;i++)
               for(int j=0;j<n;j++)
                  scanf("%d",&b[i][j]);
        multi(a,b,n);
        for(int i=0;i<n;i++){
               for(int j=0;j<n;j++)
                  printf("%d ",c[i][j]);
              printf("
    ");
        }
        return 0;
    }

    矩阵快速幂模板

    #include <bits/stdc++.h>
    #define ll long long
    #define mod 1000000007
    using namespace std;
    struct Mat{         //结构体存矩阵 
        ll m[101][101];
    };
    Mat a,e;//a是输入的矩阵,e是单位矩阵 
    ll n,p;
    
    Mat Mul(Mat x,Mat y){ //矩阵乘 
        Mat c;
        for(int i=1;i<=n;i++)
              for(int j=1;j<=n;j++)
                   c.m[i][j]=0;
        for(int i=1;i<=n;i++)
              for(int j=1;j<=n;j++)
                for(int k=1;k<=n;k++)
                      c.m[i][j] = c.m[i][j] % mod + x.m[i][k] * y.m[k][j] % mod;
        return c; 
    }
    Mat pow(Mat x,ll y){ //矩阵快速幂 
        Mat ans=e;
        while(y){
            if(y&1)
                 ans=Mul(ans,x);  
            x=Mul(x,x);
            y>>=1;
        }
        return ans;
    }
    
    int main(){
        cin>>n>>p;
        for(int i=1;i<=n;i++)
              for(int j=1;j<=n;j++)
                cin>>a.m[i][j];
        for(int i=1;i<=n;i++)
            e.m[i][i]=1;    
        Mat ans=pow(a,p);
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++)
                  cout<<ans.m[i][j] % mod<<" ";
            cout<<endl;
        }  
        return 0;
    }

      (单位阵:对角线上是1的矩阵)

     

    线性方程组(就是n元一次方程组)

     高斯消元

     消元过程

    dalao对高斯消元的理解

    高斯消元详细代码讲解

    数学期望

  • 相关阅读:
    第一次结对作业
    第一次博客作业
    个人总结
    第三次个人作业
    第二次结对作业
    第一次结对作业
    第一次个人编程作业
    第一次博客作业
    第三次个人作业——用例图设计
    第二次结对作业
  • 原文地址:https://www.cnblogs.com/aprincess/p/11803831.html
Copyright © 2020-2023  润新知