计算矩阵列中值的出现次数

时间:2013-11-30 18:01:56

标签: java matrix find-occurrences

我目前正在尝试计算使用Java在10 x 10矩阵的每列中出现值的次数。

我可以计算每一行的次数,但我对列数进行了粗略的计算。

感谢您的帮助,我是这个网站和Java的新手。

import java.util.Random;
import static java.lang.System.*;

public class Problem710 {

    public static void main(String[] args) {
        int[][] randArr = new int[10][10];
        double count = 0;
        for (int i = 0; i < randArr.length; ++i) {
            for (int j = 0; j < randArr[0].length; ++j) {
                randArr[i][j] = getRandInt(0, 1);
                count += randArr[i][j];

                out.print(randArr[i][j]);

            }
            out.println();
        }


        double averagePerRow = count / 10;
        out.println(averagePerRow);

    }

    public static int getRandInt(int min, int max) {
        Random rand = new Random();
        return rand.nextInt(max - min + 1);
    }
}

2 个答案:

答案 0 :(得分:0)

一种方法是将列转换为行并像往常一样计算它!应该这样做! 这是你交换行和列的方式......

    int [] [] lol =


        {
            {1,1,1,1,1},
            {2,2,2,2,2},
            {3,3,3,3,3},
            {4,4,4,4,4},
            {5,5,5,5,5}



        };
    int [][]  dup = new int [lol.length][lol[0].length];
    for (int i = 0; i < lol.length; i++) {
        for (int j = 0; j < lol[0].length; j++) {
            dup[j][i] = lol[i][j];
        }
    }
}

}

答案 1 :(得分:0)

这个措辞对我来说并不清楚,但是如果你不想知道整个矩阵的出现,而是每个单独的列,那就用这个:

int[][] matrix = new int[10][10];
int counter = 0;
int column = 0; // which column
int what = 10;
for(int i = 0; i < matrix.lenght; i++){
   if(matrix[i][column] == what) counter++
}

编辑:

让我们重写矩阵,这样1表示真(这是你正在寻找的数字)而0表示假。例如,仅在最后一行中有1个

|0 0 0 0|
|0 0 0 0|
|0 0 0 0|
|1 1 1 1| 
  • 行的平均值为(0 + 0 + 0 + 4)/ 4 = 1

  • 列的平均值为(1 + 1 + 1 + 1)/ 4 = 1

我真的看不出平均值会有什么不同。