繁体   English   中英

如何使用Java创建矩阵并将其所有元素相加?

[英]How can I create a matrix with Java and add all its elements to a sum?

我需要用Java编写代码来创建3000X3000矩阵,其中每个元素都是整数类型。 之后,我需要添加所有元素。

我得到了这段代码:

public class matrix {
    public static void main(String[] args) {

    long sum = 0;
    int dimension = 3000;
    int i, j;
    int matrix[][] = new int[dimension][dimension];
    ...
        for (i=0; i<dimension; i++) {
                for (j=0; j<dimension; j++) {
                    sum = sum + matrix[i][j];
            }
        }
    }
}

但是由于我以前从未使用过数组,因此实际上我们今天才第一次谈论数组。 我并没有真正了解如何自定义此代码,因此我最终得到了矩阵中所有元素的总和。

您可以使用两个循环并遍历数组并将整数值存储在其中。

public static void main(String[] args) {
        long sum = 0;
        int dimension = 3000;
        int i, j;
        int matrix[][] = new int[dimension][dimension];

        for (i = 0; i < dimension; i++) {
            for (j = 0; j < dimension; j++) {
                matrix[i][j] = 1; // Number you want to store, could be a scanner input
            }
        }

        for (i = 0; i < dimension; i++) {
            for (j = 0; j < dimension; j++) {
                sum = sum + matrix[i][j];
            }
        }

        System.out.println(sum);
    }

数组只是一个东西的列表。 在Java中,矩阵是列表的列表,因此要访问网格中的一个点,请访问arr[y][x] ,其中x是x位置, y是y位置。

因此,要将所有内容加在一起,可以使用具有以下结构的代码:

int sum = 0;                              // Define the sum to add to
int[][] grid = new int[] {                // Define the grid
    {0, 0, 0, 0},
    {0, 0, 0, 0},
    {0, 0, 0, 0},
    {0, 0, 0, 0},
};
for (int x = 0; x < grid[0].length; x++)  // Loop through X indicies
    for (int y = 0; y < grid.length; y++) // Loop through Y indicies
        sum += grid[y][x];                // Add value to the sum

该代码循环遍历每个整数,并将其加到总和上。 请记住,第一个索引是行,因此是y ,第二个索引是列,因此是x 您遍历两个索引,捕获存储在网格中的每个数字并将其存储。

我修改了iNan的答案:

public static void main(String[] args) {
    long sum = 0;
    int dimension = 3000;
    int i, j;
    int matrix[][] = new int[dimension][dimension

    for (i = 0; i < dimension; i++) {
        for (j = 0; j < dimension; j++) {
            matrix[i][j] = 1; // Number you want to store, could be a scanner input
            sum = sum + matrix[i][j];
        }
    }

    System.out.println(sum);
}

您无需在填充条目的矩阵上进行单独迭代,然后再次对其进行迭代以将所有事物累加起来。 您可以一步一步进行填充和总结,从而可以稍微加快程序速度。 使用大型矩阵,可以大大加快程序运行速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM