矩阵算法----------利用随机数组的特性来定义矩阵,并进行加、乘、置换的运算

利用数组的特性来定义矩阵,并进行加、乘、置换的运算

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();}}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值