如何在特定次数的随机位置中创建带有#1的2D数组

我想用JAVA创建一个8x8数组,在其中我想在随机生成的位置上放置1到8次。数组的所有其他位置都将为0。我正在使用此代码,但显然在特定的次数中,数组1并未填充。

public static void main(String[] args) {

    int [][] arr = new int [8][8];

    for(int i = 0; i < 8; i++){
        for(int j = 0; j < 8; j++){
            arr[i][j] =  (int) (Math.random()*2);
        }
    }

    for(int k = 0; k < 8; k++){
        for(int l = 0; l < 8; l++){
            System.out.print(arr[k][l] + " ");
        }
        System.out.println();
    }
}

}

评论
killo
killo
import java.util.Random;

int[][] array = new int[8][8];
Random r = new Random();

int a = r.nextInt(8);
int b = r.nextInt(8);

//insert 8 random 1's in the 8x8 matrix, no duplicates
//by default in Java the other places are 
for(int i = 0; i < 8; i++){
    while(array[a][b] == 1){
        a = r.nextInt(8);
        b = r.nextInt(8);
    }
    array[a][b] = 1;
}

点赞
评论