我目前正在尝试计算使用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);
}
}
答案 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
我真的看不出平均值会有什么不同。