精华内容
下载资源
问答
  • java矩阵相乘

    2021-03-19 21:42:18
    Java实现矩阵相乘 package com.company; public class Matrix { public int row; public int col; public double[][] data; Matrix(double[][] array){ //获得矩阵的行与列数 this.row=array.length; this....

    Java实现矩阵相乘

    package com.company;
    
    public class Matrix {
        public int row;
        public int col;
        public double[][] data;
        Matrix(double[][] array){
            //获得矩阵的行与列数
            this.row=array.length;
            this.col=array[0].length;
            //为data申请空间
            this.data=new double[row][col];
            //遍历数组进行数组复制
            for(int i=0;i<row;i++){
                System.arraycopy(array[i], 0, this.data[i], 0, col);
            }
        }
        //矩阵乘法
        public Matrix multiply(Matrix B){
            //构造返回结果矩阵
            Matrix C=new Matrix(new double[this.row][B.col]);
            //遍历A矩阵的行
            for(int A_row=0;A_row<this.row;A_row++){
                //遍历B的列与行相乘求和
                for(int B_col=0;B_col<B.col;B_col++) {
                    double sum = 0d;
                    for (int A_col = 0; A_col < this.col; A_col++) {
                        sum += this.data[A_row][A_col] * B.data[A_col][B_col];
                    }
                    C.data[A_row][B_col] = sum;
                }
            }
            return C;
        }
        //重写toString方法
        @Override
        public String toString(){
            String  result="[\n";
            for(int i=0;i<this.row;i++){
                result+="[";
                for(int j=0;j<this.col;j++){
                    //将this.data[i][j]保留三位小数,转为字符串+" "
                    result+=String.format("%.3f ", this.data[i][j]);
                }
                result+="]\n";
            }
            result+="]";
            return result;
        }
    }
    
    
    展开全文
  • java 矩阵相乘

    2015-10-03 12:02:36
    import java.util.Scanner; public class MatrixMultiply{  public static void main(String args[]){  System.out.println("请输入第一个矩阵的行数和列数:");  Scanner sc=new Scanner(System.in);  int...
    import java.util.Scanner;
    public class MatrixMultiply{
      public static void main(String args[]){
        System.out.println("请输入第一个矩阵的行数和列数:");
        Scanner sc=new Scanner(System.in);
        int m=sc.nextInt();
        int n=sc.nextInt();
        int[][] a=new int[m][n];
        System.out.println("请输入第二个矩阵的行数和列数:");
        int p=sc.nextInt();
        int q=sc.nextInt();
        int[][] b=new int[p][q];
        System.out.println("请输入第一个矩阵值:");
        for(int i=0;i<a.length;i++){
        for(int j=0;j<a[i].length;j++){
        a[i][j]=sc.nextInt();
        }
        }
        System.out.println("请输入第二个矩阵的值:");
        for(int i=0;i<b.length;i++){
        for(int j=0;j<b[i].length;j++){
        b[i][j]=sc.nextInt();
        }
        }
        int[][] sum=new int[m][q];
        for(int i=0;i<a.length;i++){
        for(int j=0;j<b[i].length;j++){
        sum[i][j]=0;
        for(int k=0;k<a[i].length;k++){
         sum[i][j]+=a[i][k]*b[k][i];
         }
        }
        } 
        System.out.println("结果:");
        for(int i=0;i<sum.length;i++){
        for(int j=0;j<sum[i].length;j++){
        System.out.print(sum[i][j]+" ");
          }
          System.out.println();
        }
      }
    }
    展开全文
  • java矩阵相乘算法

    2011-08-13 21:41:56
    java写的二维矩阵相乘算法,控制台程序,要求用户输入行数及列数,自动生成二维数组相乘
  • 蓝桥杯Java 矩阵相乘

    2020-03-27 18:13:47
     给定一个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的阶数和要求的幂数  ...

    资源限制
    时间限制:1.0s 内存限制:512.0MB
    问题描述
      给定一个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


    这题用简单的矩阵相乘就可以做了,但要注意,m为0的时候是单位矩阵,我用快速幂矩阵做
    代码一:
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Demo04 {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int n =  sc.nextInt();
    		int m =  sc.nextInt();
    		int [][]a = new int[n][n];
    		int [][]c = new int[n][n];
    		int [][]result = new int [n][n];
    		for (int i = 0; i < n; i++) {
    			result[i][i] = 1;
    		}
    		for (int i = 0; i < n; i++) {
    			for (int j = 0; j < n; j++) {
    				a[i][j] = sc.nextInt();
    			}
    		}
    		while(m-- > 0){
    			for (int i = 0; i < n; i++) {
    				for (int j = 0; j < n; j++) {
    					c[i][j] = 0;
    					for (int k = 0; k < n; k++) {
    						c[i][j] += a[i][k] * result[k][j];
    					}
    				}
    			}
    			for (int i = 0; i < n; i++) {
    		         System.arraycopy(c[i], 0, result[i], 0, n);
    		    }
    		}
    		for (int i = 0; i < n; i++) {
    			for (int j = 0; j < n; j++) {
    				if(j != n-1){
    					System.out.print(result[i][j] + " ");
    				}else{
    					System.out.println(result[i][j]);
    				}
    			}
    		}
    	}
    }
    
    代码二:
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Demo04 {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int n =  sc.nextInt();
    		int m =  sc.nextInt();
    		int [][]a = new int[n][n];
    		int [][]c = new int[n][n];
    		int [][]result = new int [n][n];
    		for (int i = 0; i < n; i++) {
    			result[i][i] = 1;
    		}
    		for (int i = 0; i < n; i++) {
    			for (int j = 0; j < n; j++) {
    				a[i][j] = sc.nextInt();
    			}
    		}
    		while(m > 0){
    			if(m % 2 == 1){
    				for (int i = 0; i < n; i++) {
    					for (int j = 0; j < n; j++) {
    						c[i][j] = 0;
    						for (int k = 0; k < n; k++) {
    							c[i][j] += a[i][k] * result[k][j];
    						}
    					}
    				}
    				for (int i = 0; i < n; i++) {
    			         System.arraycopy(c[i], 0, result[i], 0, n);//将c数组赋值给result数组
    			    }
    			}
    			
    			for (int i = 0; i < n; i++) {
    				for (int j = 0; j < n; j++) {
    					c[i][j] = 0;
    					for (int k = 0; k < n; k++) {
    						c[i][j] += a[i][k] * a[k][j];
    					}
    				}
    			}
    			for (int i = 0; i < n; i++) {
    		         System.arraycopy(c[i], 0, a[i], 0, n);
    		    }
    			m /= 2;
    		}
    		for (int i = 0; i < n; i++) {
    			for (int j = 0; j < n; j++) {
    				if(j != n-1){
    					System.out.print(result[i][j] + " ");
    				}else{
    					System.out.println(result[i][j]);
    				}
    			}
    		}
    	}
    }
    
    展开全文
  • java矩阵相乘的计算

    2019-10-01 18:26:50
    package a123;...import java.util.Scanner; public class a132 {public static void main(String args[]) {Scanner in = new Scanner(System.in);while (in.hasNext()) {int m = in.nextInt();int ...
    package a123;
    import java.util.Scanner;
    public class a132 {
     public static void main(String args[]) {
      Scanner in = new Scanner(System.in);
      while (in.hasNext()) {
       int m = in.nextInt();
       int n = in.nextInt();
       int n1 = in.nextInt();
       double a[][] = new double[m + 1][n + 1];
       double b[][]= new double[n + 1][n1 + 1];
       double c[][] = new double[m + 1][n1 + 1];
       for (int i = 1; i <= m; i++) {
        for (int j = 1; j <= n; j++) {
         a[i][j] = in.nextDouble();
        }
        System.out.println();
       }
       System.out.println();
       System.out.println();
       for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n1; j++) {
         b[i][j] = in.nextDouble();
        }
        System.out.println();
       }
       System.out.println();
       System.out.println();
       for (int i = 1; i <= m; i++) {
        for (int j = 1; j <= n1; j++) {
         c[i][j] = 0;
         for (int k = 1; k <= n; k++) {
          c[i][j] += a[i][k] * b[k][j];
         }
         System.out.printf("%10.2f", c[i][j]);
        }
        System.out.println();
       }
      }
     }
    }

    转载于:https://www.cnblogs.com/smallsmallDeng/p/6075339.html

    展开全文
  • java 矩阵相乘,矩阵线性运算

    千次阅读 2017-11-03 20:20:36
    矩阵C的第一个元素C[0][0]是,矩阵A的第一行A[0][*]的每一个元素和矩阵B第一列B[*][0]的每一个对应元素的乘积,然后再对这些乘积累加求和,这个求和的结果就是矩阵C第一个元素的值.即C[0][0]=A[0][0]*B[0][0]+A[0][1...
  • //矩阵相乘 public double[][] multiplyMatrix(double[][] a,double[][] b){ if(a[0].length != b.length) { return null; } double[][] c=new double[a.length][b[0]....
  • 本文对当今最主流的两种编程语言C#和Java进行了对比研究,就其可移植性和运算速度两方面特性作了分析,这样的研究结果有助于更深刻地了解两种语言的特性,并且通过矩阵相乘的运算,对两种语言编写的程序性能进行了定量的...
  • import java.util.Scanner; public class ArrayMultiplication { public static void main(String[] args) { // TODO Auto-generated method stub //定义3个数组,arr1,arr2位相乘数组,arr3为输出数
  • 该类包括矩阵行列数变量int rows和int cols,矩阵数据数组double data[][],构造方法Matrix()、Matrix(int rows,int cols)、Matrix(int rows,int cols,double data[][]),获取某元素值的方法getData(int row,int col...
  • java两个矩阵相乘 import java.util.Scanner; //import Scanner class in our programclass demo { public static void main(String…s) { int i,j,m,n,p,q,k; Scanner sc=new Scanner(System.in); //used to ...
  • Java实现矩阵相乘

    万次阅读 2018-07-12 17:15:48
    首先我们要知道二维数组就是类似于我们线性代数中的矩阵,矩阵的乘法运算大概是这样满足条件,第一个矩阵的列数等于第二个矩阵的行数 由两个矩阵相乘的矩阵的每一个元素是由第一个矩阵每一行元素分别乘上第二个矩阵...
  • Java实现矩阵相乘问题

    万次阅读 多人点赞 2019-07-15 20:50:24
    1 问题描述 1.1实验题目 设M1和M2是两个n×n的矩阵,设计算法计算M1×M2 的乘积。 1.2实验目的 (1)提高应用蛮力法设计算法的技能;...(1)设计并实现用BF(Brute-Force,即蛮力法)方法求解矩阵相乘问题...
  • java简单矩阵相乘

    2013-06-10 12:27:06
    编写一程序,计算矩阵A={{7,9,4},{5,6,8}}与矩阵 B={{9,5,2,8},{5,9,7,2},{4,7,5,8}} 相乘,把结果存入矩阵C,并在屏幕输出结果。
  • java实验矩阵相乘

    2010-06-22 11:31:29
    里面包含好几个实验内容。。有矩阵对换。。相乘。。。
  • java实现矩阵相乘

    2020-10-11 14:48:38
    import java.util.Scanner; public class three { public static void main(String[] args) { int a[][];int n;int b[][]; int i,j,sum; Scanner in=new Scanner(System.in); n=in.nextInt(); a=new int[n][n]; for...
  • Java设计两个矩阵相乘的方法

    万次阅读 2016-11-13 18:20:57
    编写二个矩阵相乘的方法,方法头为: public static double[][] multiplyMatrix(double[][] a,double[][] b) 这里a的列数必须等于b的行数。 要求:提示输入m*n的矩阵a和n*k的矩阵b,m、n、k的值由用户输入,a和b的...
  • 矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵...
  • 学习参考:1、Java实现矩阵相乘 https://blog.csdn.net/ares_xxm/article/details/72232467 2、java小练习(矩阵相乘) https://blog.csdn.net/wfzczangpeng/article/details/8039850 3、题目要求: 输入1、矩阵阶数...
  • 矩阵相乘-Java实现

    2018-11-30 16:36:53
    Java实现矩阵相乘 岭师OJ2017级ACM期中考试问题F:矩阵乘法 问题描述: 题目描述 请你实现一个程序,用于求两个矩阵的乘积。 输入 包括一系列的测试用例,每个测试用例的第一行包含三个整数a,b,c,其中a是第一个...
  • package day_30; import java.util.Scanner; /** * 输入两个矩阵,分别...输出两个矩阵相乘的结果。 * Created by IamZY on 2018/1/21. */ public class Main { public static void main(String[] args) { Scan

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 377
精华内容 150
关键字:

java矩阵相乘

java 订阅