日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java:蓝桥杯 矩阵乘法

發布時間:2024/8/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();long[][] a = new long[n][n];//用int容易越界,所以用longlong[][] b = new long[n][n];for(int i = 0;i<n;i++) {for(int j = 0;j<n;j++) {a[i][j] = b[i][j] = sc.nextLong();//寫出兩個矩陣,然后相乘}}if(m == 0) {//矩陣得0次冪等于單位矩陣Efor(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(a[i][j]+" ");}System.out.println();}}else {for(int i = 1;i<m;i++) {long[][] db = new long[n][n]; //臨時矩陣for(int j = 0;j<n;j++) {for(int k = 0;k<n;k++) {for(int l = 0;l<n;l++) {db[j][k] +=a[j][l]*b[l][k]; //核心公式} }}b = db;//將db賦值給b,下次冪運算就用二次乘一次達到遞增}//輸出for(int i = 0;i<n;i++) {for(int j = 0;j<n;j++) {System.out.print(b[i][j]+" ");}System.out.println();}}} }

總結

以上是生活随笔為你收集整理的java:蓝桥杯 矩阵乘法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。