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();
                }
            }
    
       }
    }
    

      

    不忘初心,方得始终。只有走过弯路,才更确信当初最想要的是什么。
  • 相关阅读:
    NSFileHandle学习
    NSFileManager学习创建拷贝删除
    电量电费的尖峰平谷
    电表的付费模式
    电能表类型
    oracle递归
    相关子查询和非相关子查询
    再说exists 关键字,和inner join 差别大
    发电厂和电力局的关系
    js的toFixed()方法
  • 原文地址:https://www.cnblogs.com/wszhu/p/12609134.html
Copyright © 2011-2022 走看看