-1

我目前正在尝试使用 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);
    }
}
4

2 回答 2

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];
        }
    }
}

}

于 2013-11-30T18:05:01.430 回答
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

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

于 2013-11-30T18:11:33.443 回答