基础练习 矩阵乘法

2023-10-27

问题描述

给定一个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

资源限制
时间限制:1.0s 内存限制:512.0MB


我的答案

import java.util.Scanner;

class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt(); //阶数
        int m = in.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();
            }
            return;
        }
        long[][] a = new long[n][n];
        for(int i=0;i<n;i++){
            for(int j =0;j<n;j++){
                a[i][j]=in.nextInt();
            }
        }
        if(m!=1){
            a = getVal(a,a,m);
        }
        for(int i=0;i<n;i++){
            for (int j = 0; j < n; j++) {
                System.out.print(a[i][j]+" ");
            }
            System.out.println();
        }

    }

    /**
     * 进行幂运算
     * @param a
     * @param b
     * @param m
     * @return
     */
    public static long[][] getVal(long[][] a,long[][] b,int m){
        if(m==1){
            return a;
        }
        return  getVal(muti(a,b),b,m-1);
    }

    /**
     * 获得两个矩阵相乘的结果 a*b
     * @param a
     * @param b
     * @return
     */
    public static long[][] muti(long[][] a, long[][] b){
        long[][] res = new long[a.length][a.length];
        for(int i=0;i<a.length;i++){
            for(int j=0;j<a.length;j++){
                for(int k=0;k<a.length;k++){
                    res[i][j] += a[i][k]*b[k][j];
                }
            }
        }
        return res;
    }
}

小结:我吐了!这个i j k写错一个排半天错。吸取教训吧

题目来源:http://lx.lanqiao.cn/problem.page?gpid=T58

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基础练习 矩阵乘法 的相关文章

随机推荐

  • 网络安全(黑客)自学路线

    谈起黑客 可能各位都会想到 盗号 其实不尽然 黑客是一群喜爱研究技术的群体 在黑客圈中 一般分为三大圈 娱乐圈 技术圈 职业圈 娱乐圈 主要是初中生和高中生较多 玩网恋 人气 空间 建站收徒玩赚钱 技术高的也是有的 只是很少见 技术圈 这个
  • Python第九、十课

    枭 Python第九 十课 今天讲解了Python的 函数参数类型 变量作用域 函数参数类型 默认值参数 规则 在定义带有默认值参数的函数时 默认值参数必须全部出现在位置参数右侧 且任何一个默认参数右边都不能出现位置参数 默认值参数只在第一
  • 【云原生之kubernetes实战】kubernetes集群的HPA弹性伸缩

    云原生之kubernetes实战 kubernetes集群的HPA弹性伸缩 一 HAP介绍 1 HPA简介 2 HPA的实现原理 3 HPA自动伸缩示意图 4 HPA中影响 Pod 数量的因素 5 HPA改善服务的方式 二 检查本地k8s环
  • python学习主要应该学些什么

    近几年 python 正在成为最受欢迎的编程语言之一 无论是软件开发还是机器学习 python 都能够处理得游刃有余 人们喜欢使用 python 语言是因为它非常容易 相比于 c 语言和 java 等语言 它开发效率更高 它有着丰富的第三方
  • centos7安装或卸载RabbitMQ 3.8.4+Erlang 23.0详细步骤

    参考博客 Linux CentOS 7 下RabbitMQ的安装与配置 风萧萧1999的博客 CSDN博客 安装前准备 1 检查RabbitMQ Erlang版本 https www rabbitmq com which erlang ht
  • 【解决】使用mybatis解决sql报错: Parameter index out of range (1 > number of parameters, which is 0)

    当我们运用ssm框架做项目 并且要通过mybatis来做模糊查询时 sql语句中where条件语句 like后面 要用 like 条件名 而不是平常做where 时的like 条件名
  • InceptionNext实战:使用InceptionNext实现图像分类任务(一)

    文章目录 摘要 安装包 安装timm 安装 grad cam 数据增强Cutout和Mixup EMA 项目结构 计算mean和std 生成数据集 摘要 论文翻译 https blog csdn net m0 47867638 articl
  • wavefronts

    https www g truc net post 0597 html https michaldrobot com 2014 04 01 gcn execution patterns in full screen passes https
  • 力扣刷题记录(三)

    1084 销售分析III Create table If Not Exists Product product id int product name varchar 10 unit price int Create table If No
  • 机器学习——numpy逻辑回归(手写数字识别)

    二分类 识别1 7 import numpy as np import struct import matplotlib pyplot as plt import os from PIL import Image from sklearn
  • timm库安装

    按理来说 conda config append channels conda forge conda install timm 更新timm版本 pip install timm 0 5 4 python3 8 pytorch 1 11
  • HTTP与TCP的区别和联系

    https blog csdn net u013485792 article details 52100533 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别 希望通过自己的浅显理解能对初学者有所帮助 一 基
  • Kaggle入门——Titanic+随机森林(调参)+逻辑回归

    本博客记录一下自己的Kaggle入门题目 Titanic 只弄了一天 特征工程做得比较草率 结果只有0 76 不过主要是为了体验一下Kaggle竞赛的流程 以及熟悉一下Kaggle的使用 目录 1 题目相关 2 特征工程 3 随机森林 调参
  • 2021-09-08 PuTTY & Xftp-5使用密钥连接服务器

    PuTTY Xftp 5使用密钥连接服务器 所需材料 Xftp 5操作 PuTTY操作 所需材料 Xftp 5 PuTTY 密钥 服务器IP 用户名和密码 Xftp 5操作 新建会话 输入会话名称 主机IP 选择SFTP协议 方法选择Pub
  • 用python输出0到100所有能被3整除的数字_python: 输出 1~100 之间不能被 7 整除的数,每行输出 10 个数字,要求应用字符串格式化方法美化输出格式。...

    输出 1 100 之间不能被 7 整除的数 j 0 for i in range 1 101 遍历1 100取值 定义为变量 i if i 7 0 找出不能被 7 整除的数 print 3d format i end Format格式化输出
  • 伏秒积和安秒积

    伏秒平衡原则 伏秒平衡原则 在稳态工作的开关电源中电感两端的正伏秒值等于负伏秒值 安秒平衡原则 在稳态工作的开关电源中电容两端的正安秒值等于负安秒值 电容两端的电压不能突变 当电容足够大时 可认为其电压不变 电感中的电流不能突变 当电感足够
  • ./configure –prefix 命令用法

    在Linux上编译安装软件时 经常遇到 configure prefix usr这个命令 configure prefix 是什么意思呢 下面简单介绍一下 configure prefix 的用法 源码的安装一般由有这三个步骤 配置 con
  • 使用valgrind检查内存问题并且输出报告

    valgrind内存泄漏分析 是在linux中检查内存泄漏的工具 当程序编写完之后我一般都会使用它来检查一次内存问题 基本上能杜绝服务器的内存泄漏问题 当然是面对C C 这样的语言的 使用方式就是将程序编译好 然后通过valgrind来启动
  • iOS内存管理之autorelease

    当你需要延迟调用release方法的时候会使用autorelease 如 NSString fullName NSString string NSString alloc initWithFormat self firstName self
  • 基础练习 矩阵乘法

    问题描述 给定一个N阶矩阵A 输出A的M次幂 M是非负整数 例如 A 1 2 3 4 A的2次幂 7 10 15 22 输入格式 第一行是一个正整数N M 1 lt N lt 30 0 lt M lt 5 表示矩阵A的阶数和要求的幂数 接下