• 二维数组练习--矩阵的加法和乘法


    数组的练习示例展示:

    package arrayList;
    /**
     * 矩阵的集中运算法则:求和,求积,求逆矩阵,转置矩阵......
     * @author Drew
     *
     */
    public class Arrays {
        /**
         * 两个二维数组(矩阵)求和。
         * @param a 矩阵(二维数组)
         * @param b 矩阵(二维数组)
         * @return  返回一个矩阵(二维数组)
         */
        public static int[][] add(int [][] a,int [][] b) {
            int [][] c = new int[a.length][b.length];
            for(int i = 0; i<c.length; i++) {
                for(int j = 0; j < c.length; j++) {
                    c[i][j] = a[i][j] + b[i][j];
                }
            }
            return c;
        }
        /**
         * 直接打印出每个矩阵的值
         * @param arr
         */
        public static void print(int [][] arr) {
            for(int i = 0; i < arr.length; i++) {
                for(int j = 0; j < arr.length; j++) {
                        System.out.print(arr[i][j] + " ");//输出每一个数组中的值
                }
                System.out.println();//将数组按行输出。
            }
        }
        
        /**
         * 矩阵的乘法
         * @param a  矩阵(二维数组)
         * @param b  矩阵(二维数组)
         * @return  返回一个矩阵(二维数组)
         */
        public static int[][] multiplication(int [][] a,int [][] b) {//矩阵的乘法运算法则有问题。见Matrix.java的具体案例。
            int[][] c = new int[a.length][b.length];
            for(int i = 0; i<c.length; i++) {
                for(int j = 0; j < c.length; j++) {
                    c[i][j] = a[i][j]*b[i][j];
                }
            }
            return c;
        }
        
        /**
         * 主函数方法,用于测试矩阵的运算法则。
         * @param args
         */
        public static void main(String[] args) {
            int [][] a = {{1,2},
                         {3,4}};
            int [][] b = {{10,20},
                          {30,40}};
            System.out.println("--------矩阵a");
            print(a);
            System.out.println("--------矩阵b");
            print(b);
            System.out.println("============数组的基本运算法则:==============");
            System.out.println("--------矩阵加法----------");
            int [][] c = add(a, b);
            print(c);
            System.out.println("--------矩阵乘法----------");
            int [][] d = multiplication(a, b);
            print(d);
            
            /*int [][] c = new int[2][2];//二阶矩阵(Matrix)
            for(int i = 0; i<c.length; i++) {
                for(int j = 0; j < c.length; j++) {
                    c[i][j] = a[i][j] + b[i][j];
                    System.out.print(c[i][j] + " ");
                }
            }*/
            
            
            //多维数组很少见
            /*int [][][][] b = new int [1][2][2][1];
            b[0][0][0][0] = 34;
            b[0][0][1][0] = 45;
            for(int i = 0; i<b.length; i++) {
                for(int j = 0; j < b.length; j++) {
                    for(int c = 0; c < b.length; c++) {
                        for(int f = 0; f < b.length; f++) {
                            System.out.println(b[i][j][c][f] + " ");
                        }
                    }
                }
            }*/
        }
    
    }

    结果展示:

    这是一个小小的二维数组实例展示!你可以自己尝试着去完成矩阵的转置和求逆矩阵。

  • 相关阅读:
    leetcode------Remove Element
    leetcode------Merge Two Sorted Lists
    [转载]Unity3D 游戏引擎之使用C#语言建立本地数据库(SQLITE)
    [转载]VS2012创建MVC3项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。
    [转载]Unity3D 访问Access数据库
    [转载]C#导入XLS数据到数据库
    [转载]Unity3D的断点调试功能
    [Unity3D]支持的视频格式
    unity 3d 获取鼠标当前坐标
    [转载]VS2012程序打包部署详解
  • 原文地址:https://www.cnblogs.com/superdrew/p/8082182.html
Copyright © 2020-2023  润新知