将2d数组中的特定元素设置为随机值

时间:2017-12-14 05:20:20

标签: java arrays

我希望为2d数组中的某个元素设置一个随机值。 在我的任务中,我必须为2d数组中的第一个元素分配一个随机数1-5,然后转到下一行并执行相同的操作。这是我到目前为止所看到的,但看起来并不正确。

double CURRENT_BOARD [5][5] = {{0, 0, 0, 0, 0},
                          {0, 0, 0, 0, 0},
                          {0, 0, 0, 0, 0},
                          {0, 0, 0, 0, 0},
                          {0, 0, 0, 0, 0}};
  public double shuffleBoard (double currentBoard) {
  Random rand = new Random();
  shuffledBoard [][] = new double [5][5];
  for (i=0 ;i<5 ;i++) {
    j = rand.nextInt(5) + 1;
    shuffledBoard = shuffledBoard [j][0];
  }
  return shuffleBoard;
 }//shuffleBoard

我的最终目标是数组的元素看起来像 {5,0,0,0,0} {3,0,0,0,0} {4,0,0,0,0}等等,只要随机选择数组的第一个元素即可。任何人都可以提供任何帮助来实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

您对2D double数组的声明不正确。 看看this StackOverflow answer

声明应该像

double[][] CURRENT_BOARD = new double[][]{{0, 0, 0, 0, 0},
        {0, 0, 0, 0, 0},
        {0, 0, 0, 0, 0},
        {0, 0, 0, 0, 0},
        {0, 0, 0, 0, 0}};

对于随机数部分,您可以尝试这个

public double[][] shuffleBoard(double[][] currentBoard) {
    double[][] shuffledBoard = currentBoard;
    Random rand = new Random();
    double rangeMin = 1, rangeMax = 5;
    for (int i = 0; i < 5; i++) {
        double j = rangeMin + (rangeMax - rangeMin) * rand.nextDouble();
        shuffledBoard[i][0] = j;
    }
    return shuffledBoard;
}