如何随机填充int = 1的10%二维数组?

时间:2019-04-17 07:13:50

标签: java arrays

我没什么问题,我开始学习java。 我需要创建二维数组,并且我只需要将数组填充为10%int 1当然我的代码需要随机填充此数组。

需要一些提示,说明如何填写10%。

 public static void main(String[] args) {

    int maxX = 10;
    int maxY = 10;
    int[][] Arr = new int[maxX][maxY];
    Random r = new Random();
    // random ints
    for (int x = 0; x < maxX; x++) {
        for (int y = 0; y < maxY; y++) {
            Arr[x][y] = r.nextInt(2);
        }
    }


    // printing Arr
    for (int i = 0; i < Arr.length; i++) {
        for (int j = 0; j < Arr[i].length; j++) {
            System.out.print(Arr[i][j] + " ");
        }
        System.out.println();
    }
}

4 个答案:

答案 0 :(得分:0)

您可以执行以下步骤:

假设您需要填充一个N * N数组。

  • 创建一个List并添加(N * N) / 10 1s和(N * N * 9) / 10 0s。 list.addAll(Collections.nCopies(count,1 or 0))可以在这里为您提供帮助。

  • 在该Collections.shuffle上运行List以获取随机顺序。

  • 遍历List的元素。前N个元素将成为2D数组的第一行,后N个元素将成为数组的第二行,依此类推...

答案 1 :(得分:0)

改组的另一种方法是选择10%x N个随机位置并放置1(如果位置为0,则选择另一个位置)。用伪代码:

sess.run(local_init)

}

您需要将索引从0转换为N * N,将其转换为2D数组中的一对i,j。

答案 2 :(得分:0)

我将使用“ double random = Math.random();” 然后检查是否随机变量小于或等于0.1

答案 3 :(得分:0)

制作数组,随机排列行和列,但不超过百分比,检查位置是否为0,如果是,则用1填充。

form_label