我没什么问题,我开始学习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();
}
}
答案 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