国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

藍橋杯-算法訓練-矩陣乘法-Java

2019-11-14 11:45:25
字體:
供稿:網(wǎng)友

藍橋杯-算法訓練-矩陣乘法-java

問題描述

  輸入兩個矩陣,分別是m*s,s*n大小。輸出兩個矩陣相乘的結(jié)果。

輸入格式

  第一行,空格隔開的三個正整數(shù)m,s,n(均不超過200)。   接下來m行,每行s個空格隔開的整數(shù),表示矩陣A(i,j)。   接下來s行,每行n個空格隔開的整數(shù),表示矩陣B(i,j)。   

輸出格式

m行,每行n個空格隔開的整數(shù),輸出相乘後的矩陣C(i,j)的值。

樣例輸入

2 3 2 1 0 -1 1 1 -3 0 3 1 2 3 1

樣例輸出

-3 2 -8 2

提示 矩陣C應(yīng)該是m行n列,其中C(i,j)等于矩陣A第i行行向量與矩陣B第j列列向量的內(nèi)積。 例如樣例中C(1,1)=(1,0,-1)(0,1,3) = 1 0 +0*1+(-1)*3=-3

思考

在第一個矩陣的列數(shù)和第二個矩陣的行數(shù)相等時才能實現(xiàn)矩陣的相乘,這里我定義二維數(shù)組來表示矩陣,通過for循環(huán)來進行矩陣的相乘。

代碼

import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int m = 0 , s = 0 , n = 0 ; if(scanner.hasNext()){ //輸入m,s,n m = scanner.nextInt() ; s = scanner.nextInt() ; n = scanner.nextInt() ; } //定義兩個矩陣,行列數(shù)分別為m,s與s,n int arr1[][] = new int[m][s] ; int arr2[][] = new int[s][n] ; for(int i = 0 ; i < m ; i ++){ //輸入第一個矩陣 for(int j = 0 ; j < s ; j++){ if(scanner.hasNext()){ arr1[i][j] = scanner.nextInt() ; } } } for(int i = 0 ; i < s ; i++){ //輸入第二個矩陣 for(int j = 0 ; j < n ; j++){ if(scanner.hasNext()){ arr2[i][j] = scanner.nextInt() ; } } } int arr[][] = new int[m][n] ; //定義一個相乘后的矩陣,矩陣的行數(shù)與列數(shù)為m,n for(int i = 0 ; i < m ; i++){ //進行矩陣相乘 for(int j = 0 ; j < n ; j++){ for(int x = 0 ; x < s ; x ++){ //arr[i][j] = arr1[i][1] * arr2[1][j] + ... + arr1[i][s-1] * arr2[s-1][j] arr[i][j] += arr1[i][x] * arr2[x][j] ; } System.out.PRint(arr[i][j] + " "); } System.out.println(); } }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 泰宁县| 弥勒县| 平度市| 昭平县| 满洲里市| 开阳县| 利辛县| 无锡市| 凤冈县| 峨边| 鞍山市| 宣城市| 文登市| 剑河县| 台安县| 新竹市| 三江| 陆丰市| 漳州市| 清水县| 涟源市| 通榆县| 天水市| 麻阳| 西城区| 黔东| 迁安市| 桓仁| 高平市| 伊金霍洛旗| 武夷山市| 汽车| 松桃| 龙门县| 商水县| 集贤县| 江川县| 高阳县| 德保县| 佛冈县| 青神县|