利用数组的特性来定义矩阵,并进行加、乘、置换的运算
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
import java.io.*;
public class MultiMatrix4 implements Cloneable {
private int x;
private int y;
private int[][] item;
public MultiMatrix4(int row,int col,int a[][]){
x=row;
y=col;
item=new int[x][y];
for(int i=0;i<row;i++){
item[i]=new int[y];
for(int j=0;j<col;j++){
item[i][j]=a[i][j]; }}}
public MultiMatrix4 mult (MultiMatrix4 multi){
if(multi.x!=y){
System.out.println("error");
return null; }
else{
int row=multi.x;
int col=multi.y;
int[][] c=new int[row][col];
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
int s=0;
for(int k=0;k<y;k++){
s=s+ item[i][k] * multi.item[k][j];
c[i][j]=s; } }
}return(new MultiMatrix4(row,col,c)); } }
public MultiMatrix4 tran(){
int row=y;
int col=x;
int a[][]=new int[row][col];
for(int i=0;i<row;i++)
for(int j=0;j<col;j++){
a[i][j]=item[j][i]; }
return(new MultiMatrix4(row,col,a)); }
public MultiMatrix4 puls(MultiMatrix4 multi){
if(multi.x!=y){
System.out.println("error");
return null; }
else{
int row=multi.x;
int col=multi.y;
int[][] c=new int[row][col];
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
c[i][j]=item[i][j]+multi.item[i][j];
return(new MultiMatrix4(row,col,c)); }}
public static int enterNum(int num){
num=0;
try{
String s="";
BufferedReader in=
new BufferedReader(new InputStreamReader(System.in));
s=in.readLine();
num=Integer.parseInt(s);
}catch(IOException e){}
System.out.print(" ");
return num; }
public void prnt(){
for(int i=0;i<item.length;i++){
for(int j=0;j<item[i].length;j++)
System.out.print(item[i][j]+" ");
System.out.println("");}}
public static void main(String[] args)throws CloneNotSupportedException {
int n=0;
int m=0;
Random rand=new Random();
System.out.println("请输入矩阵a[][]的行 和 列");
n=enterNum(n);
m=enterNum(m);
int[][] a=new int[n][m];
for(int i=0;i<n;i++){
a[i]=new int[n];
for(int j=0;j<m;j++){
Integer k=new Integer(rand.nextInt(100));
a[i][j]=k;}}
MultiMatrix4 multi=new MultiMatrix4(n,m,a);
System.out.println("矩阵multi.a[][] :");
multi.prnt();
MultiMatrix4 multi1=(MultiMatrix4) multi.clone();
System.out.println("矩阵multi1.a[][] :");
multi1.prnt();
MultiMatrix4 multi2=multi.puls(multi1);
System.out.println("矩阵multi2.a[][] :即矩阵之和:");
multi2.prnt();
MultiMatrix4 multi3=multi1.tran();
System.out.println("矩阵multi2.a[][] :即矩阵的转置:");
multi3.prnt();
MultiMatrix4 multi4=multi.mult(multi3);
System.out.println("矩阵multi2.a[][] :即矩阵的乘积:");
multi4.prnt();}}最后
以上就是心灵美大树最近收集整理的关于矩阵算法----------利用随机数组的特性来定义矩阵,并进行加、乘、置换的运算的全部内容,更多相关矩阵算法----------利用随机数组内容请搜索靠谱客的其他文章。
发表评论 取消回复