Java 想要用随机位置的数字填充矩阵,并且给出它们的频率
我想创建一个数字范围为0-2的矩阵,每个数字出现在矩阵中的次数是给定的,但它们的位置必须是随机的Java 想要用随机位置的数字填充矩阵,并且给出它们的频率,java,matrix,random,Java,Matrix,Random,我想创建一个数字范围为0-2的矩阵,每个数字出现在矩阵中的次数是给定的,但它们的位置必须是随机的 创建矩阵M并用-1初始化它 将R,C作为矩阵的行数和列数 设C0=0的计数,C1=1的计数,C2=2的计数 4//更新矩阵中的0 while(C0 > 0) { int row = get a Random number between 0, R int col = get a Randome number between 0,C if(M[row][col] == -1) { M[ro
while(C0 > 0)
{
int row = get a Random number between 0, R
int col = get a Randome number between 0,C
if(M[row][col] == -1)
{
M[row][col] = 0;
C0--;
}
else
{
// Do not update this cell as a value has been put in it
}
}
不清楚问题是什么?最好的方法是什么?如果随机单元变成已经更新的单元,则该过程将重复,这是无效的。当矩阵中要更新的单元格很少时,这种情况会更频繁。对于随机分配,您将永远无法避免冲突。我可以检查矩阵的每个位置,在0-2范围内分配随机数,并减少它们的计数。这就是我想要实现的,我问,因为我的代码有太多行,我想改进它,无论如何我找到了一个更好的方法,谢谢。