Java 想要用随机位置的数字填充矩阵,并且给出它们的频率

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

我想创建一个数字范围为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[row][col] = 0;
      C0--;
    }
    else
    {
    // Do not update this cell as a value has been put in it
    }
    
    }
    
  • 做同样的事情1秒
  • 做同样的事情2秒

  • 不清楚问题是什么?最好的方法是什么?如果随机单元变成已经更新的单元,则该过程将重复,这是无效的。当矩阵中要更新的单元格很少时,这种情况会更频繁。对于随机分配,您将永远无法避免冲突。我可以检查矩阵的每个位置,在0-2范围内分配随机数,并减少它们的计数。这就是我想要实现的,我问,因为我的代码有太多行,我想改进它,无论如何我找到了一个更好的方法,谢谢。