gpt4 book ai didi

java - 为矩阵上的随机元素设置值

转载 作者:行者123 更新时间:2023-12-02 03:16:47 25 4
gpt4 key购买 nike

我正在尝试生成一个 8 x 8 矩阵。矩阵的每个元素的值都需要为 1,除了每列上有一个元素被设置为 0,该元素是通过生成 0-7 之间的随机整数来选择的。

运行代码时得到的结果:

   1     1     1     1     1     1     1     1  
1 1 1 0 1 1 1 1
1 1 0 1 1 1 1 1
1 0 1 1 1 1 1 1
1 0 1 1 1 1 1 1
1 0 0 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1

我的矩阵应如下所示:

   1     1     1     1     1     1     1     1  
1 1 0 1 1 1 1 1
1 1 1 1 1 0 1 0
0 1 1 1 1 1 1 1
1 1 1 0 1 1 0 1
1 0 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 0 1 1 1

代码

    for (int[] row: grid)
Arrays.fill(row, 1);

for (int i=0; i<grid.length; i++) {
int j = getRandom();
grid[i][j] = 0;
}

// print matrix
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++)
System.out.format("%2s%2d%2s", " ", Main.grid[i][j], " ");

System.out.println();
}

最佳答案

在嵌套循环中,单元格的初始化和清空都位于最内层循环中。这将导致每个单元格都运行一次,但每列只执行一次清零。

如果我们将单元格的初始化顺序从行到行更改为列到列,我们可以将清零逻辑移到最外层循环。

for (int c = 0; c < 8; c++) {
for (int r = 0; r < 8; r++) {
Main.grid[r][c] = 1;
}

Main.grid[getRandom()][c] = 0; // assuming your getRandom() is within range
}

关于java - 为矩阵上的随机元素设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40187932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com