zoukankan      html  css  js  c++  java
  • 【试题 基础练习 矩阵乘法】暴力矩阵乘法,再次了解一下矩阵

    问题描述
      给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
      例如:
      A =
      1 2
      3 4
      A的2次幂
      7 10
      15 22
    输入格式
      第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数
      接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值
    输出格式
      输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开
    样例输入
    2 2
    1 2
    3 4
    样例输出
    7 10
    15 22
    import java.io.BufferedWriter;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.util.*;
    
    public class Main {
        public  static  void main(String [] args){
            Scanner sc =new Scanner(System.in);
            int n = sc.nextInt();
            int m = sc.nextInt();
            int arr[][] = new int[n+10][n+10];
            int brr[][] = new int[n+10][n+10];
            for(int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                    brr[i][j]=arr[i][j]=sc.nextInt();
            if(m==0) {
                for (int i = 0; i < n; i++) {
                    for (int j = 0; j < n; j++) {
                        if (i == j)
                            System.out.print("1 ");
                        else System.out.print("0 ");
                    }
                    System.out.println();
                }
            }
            else if(m==1){
                for(int i=0;i<n;i++){
                    for(int j=0;j<n;j++) System.out.print(arr[i][j]+" ");
                    System.out.println();
                }
    
            }else {
                 for(int z=1;z<m;z++){
                     int temp[][]=new int[n+10][n+10];
                     for(int i=0;i<n;i++)
                       for(int j=0;j<n;j++){
                         int add = 0;
                            for(int y=0;y<n;y++)
                               add+=arr[i][y]*brr[y][j];
                            temp[i][j]=add;
                      }
                      brr=temp;
                 }
                for(int i=0;i<n;i++){
                    for(int j=0;j<n;j++) System.out.print(brr[i][j]+" ");
                    System.out.println();
                }
            }
    
       }
    }
    

      

    不忘初心,方得始终。只有走过弯路,才更确信当初最想要的是什么。
  • 相关阅读:
    动态规划:DAG-嵌套矩形
    动态规划:LCIS
    动态规划&字符串:最长公共子串
    动态规划:LCS
    动态规划:状压DP-斯坦纳树
    动态规划:数位DP
    JavaScript 正则表达式
    JavaScript 类型转换
    JavaScript typeof, null, 和 undefined
    JavaScript if...Else 语句
  • 原文地址:https://www.cnblogs.com/wszhu/p/12609134.html
Copyright © 2011-2022 走看看