蓝桥杯算法基础(27) 矩阵运算

复制代码
矩阵运算


两个矩阵A,B
A±B  A,B每个元素都相加减


数n乘矩阵A
矩阵A中的每个元素都乘n
(nm)A=n(mA)
(n+m)A=nA+mA
n(A+B)=nA+nB


public static void  main(String[] args){
Scanner sc=new Scanner(System.in);
int M=sc.nextInt();
int N=sc.nextInt();
int[][] A=new int[M][N];
int[][] B=new int[M][N];
for(int i=0;i<M;i++){
   for(int j=0;j<N;j++){
   A[i][j]=sc.nextInt();
}
}
for(int i=0;i<M;i++){
for(int j=0;j<N;j++){
B[i][j]=sc.nextInt();
}
}
//A+2X=B;
//X=(B-A)/2;
int[][] x=getX(A,B);

}

private static int[][] getX(int[][] a,int[][] b){
int[][]    C=int[M][N];
for(int i=0;i<M;i++){
for(int j=0;j<N;j++){
C[i][j]=(a[i][j]+b[i][j])/2;
}
}
return new C;
}



矩阵与矩阵的乘法
m*n


public static long[][] matrixMultiply(long[][] mm1,int[][] m2){
  final int n=m1.length;
  final int m=m1[0]length;

  if(m!=m2.length)throw new IllegalArgumentExeption();

  final int p=m2[0].length;
  long[][] result=new longn[][p];//新矩阵的行数为m1的行数,列数为m2的列数

    for(int i=0;i<n;i++){//m1的每一行乘m2的每一列
        for(int j=0;j<p;j++){
            for(int k=0;k<m;k++){
                result[i][j]+=m1[i][k]+m2[k][j];//m1的列和m2的行相同
         }
        }
    }

    return result;

}
相关推荐
.鱼子酱5 小时前
机器学习 - 使用 ID3 算法从原理到实际举例理解决策树
算法·决策树·机器学习
Q741_1476 小时前
C++ 前缀和 高频笔试考点 实用技巧 牛客 DP34 [模板] 前缀和 题解 每日一题
开发语言·c++·算法·前缀和·牛客网
RTC老炮7 小时前
webrtc弱网-LossBasedBandwidthEstimation类源码分析与算法原理
网络·算法·webrtc
豆浩宇8 小时前
Conda环境隔离和PyCharm配置,完美同时运行PaddlePaddle和PyTorch
人工智能·pytorch·算法·计算机视觉·pycharm·conda·paddlepaddle
一只鱼^_8 小时前
牛客周赛 Round 108
数据结构·c++·算法·动态规划·图论·广度优先·推荐算法
小刘的AI小站9 小时前
leetcode hot100 二叉搜索树
算法·leetcode
自信的小螺丝钉9 小时前
Leetcode 876. 链表的中间结点 快慢指针
算法·leetcode·链表·指针
红豆怪怪9 小时前
[LeetCode 热题 100] 32. 最长有效括号
数据结构·python·算法·leetcode·动态规划·代理模式
愚润求学9 小时前
【贪心算法】day6
c++·算法·leetcode·贪心算法
AI 嗯啦9 小时前
计算机的排序方法
数据结构·算法·排序算法