/*** * @author Administrator**输出计算矩阵与转置矩阵的乘积*/
public class ZhuanZhiArr {//二维矩阵输出public static void ppt(int arr[][]){for(int i=0;i<arr.length;i++){for(int j=0;j<arr[i].length;j++){System.out.print(arr[i][j]+" ");}System.out.print("\n");}}//矩阵初始化public static int[][] Fuzhi(int FirstValue,int row,int column){int arr1[][]=new int[row][column];for(int i=0;i<row;i++){for(int j=0;j<column;j++){if(i==0&j==0){arr1[i][j]=FirstValue;}else if(i!=0&j==0) {arr1[i][j]=arr1[i-1][column-1]+1;}else{arr1[i][j]=arr1[i][j-1]+1;}}}return arr1;}//矩阵转置public static int[][] ZhuanZhi(int arr1[][],int row,int column){int arr2[][]=new int[column][row];for(int i=0;i<row;i++){for(int j=0;j<column;j++){arr2[j][i]=arr1[i][j];}}return arr2;}//计算矩阵转置乘积public static int[][] ChengJi(int arr1[][],int arr2[][],int row,int column){int ji[][]=new int[row][row];for(int i=0;i<row;i++){for(int j=0;j<row;j++){int sum=0;for(int k=0;k<column;k++){sum+=arr1[i][k]*arr2[k][j];}ji[i][j]=sum;}}return ji;}public static void line(){System.out.println("=======================");}public static void ZhuanZhiSum(int FirstValue,int row,int column){int arr1[][]=Fuzhi(FirstValue, row, column);System.out.println("初始矩阵:");ppt(arr1);int arr2[][]=ZhuanZhi(arr1, row, column);System.out.println("转置矩阵:");ppt(arr2);int arr3[][]=ChengJi(arr1, arr2, row, column);System.out.println("矩阵乘积:");ppt(arr3);line();}public static void main(String args[]){System.out.println("测试1:");ZhuanZhiSum(3, 3, 2);System.out.println("测试2:");ZhuanZhiSum(7, 5, 8);}
}
public class zengliangjuzhen {public static void main(String args[]){getArray(3,2,3);}public static void getArray(int start,int rows,int columns){//rows行 columns列pptarry(chushihua(start,rows,columns));System.out.println("--------------");pptarry(zhuanzhiarry(chushihua(start,rows,columns),rows,columns));System.out.println("--------------");pptarry(chengji(chushihua(start,rows,columns),zhuanzhiarry(chushihua(start,rows,columns),rows,columns),rows,columns));}public static int[][] chushihua(int start,int rows,int columns){int [][]startarr=new int[rows][columns];int m=0;for(int i=0;i<rows;i++){//0,1,2,3for(int j=0;j<columns;j++){//0,1,2,3,4startarr[i][j]=start+m*1;m+=1;}}return startarr;}public static void pptarry(int [][]arr){for(int i=0;i<arr.length;i++){for(int j=0;j<arr[0].length;j++){System.out.print(arr[i][j]+" ");}System.out.println("\n");}}public static int[][] zhuanzhiarry(int [][]arr,int rows,int columns){int arry2[][]=new int[columns][rows];for(int i=0;i<rows;i++){for(int j=0;j<columns;j++){arry2[j][i]=arr[i][j];}}return arry2;}public static int[][] chengji(int arr[][],int arr2[][],int rows,int columns){int [][]arr3=new int[rows][rows];for(int i=0;i<rows;i++){for(int j=0;j<rows;j++){//第i行乘以第j列int sum=0;for(int m=0;m<columns;m++){sum+=arr[j][m]*arr2[m][i];}arr3[i][j]=sum;}}return arr3;}
}
矩阵的[0][0]位置的值已知,后面元素比前边元素大1,矩阵的行和列已知,求该矩阵与转置矩阵的乘积