Ниже мой матричный код, я хочу заполнить пробелы уникальными числами.Но я не могу понять, почему это не работает.Я пытался идти шаг за шагом, но я не могу понять, где я допустил ошибку.Итак, дело в том, что у меня есть заданная матрица 9 × 9 с некоторыми числами, и я хочу дополнить оставшуюся часть уникальными числами, чтобы в каждой строке и столбце были все числа от 1 до 9, но разные на каждомколонка ряд.Пожалуйста, помогите мне, спасибо!
package com.javagement;
import java.util.Random;
public class Main {
public static void main(String[] args) {
int[][] matriceBuni = new int[9][9];
for(int i = 0; i < 9; i++){
for(int j = 0; j < 9; j++){
matriceBuni[i][j] = 0;
}
}
matriceBuni[0][0] = 8;
matriceBuni[0][4] = 6;
matriceBuni[0][8] = 4;
matriceBuni[1][2] = 7;
matriceBuni[1][4] = 3;
matriceBuni[1][8] = 5;
matriceBuni[2][0] = 3;
matriceBuni[2][1] = 9;
matriceBuni[2][5] = 5;
matriceBuni[2][7] = 8;
matriceBuni[3][2] = 8;
matriceBuni[3][3] = 6;
matriceBuni[3][6] = 7;
matriceBuni[3][7] = 5;
matriceBuni[4][2] = 5;
matriceBuni[4][3] = 8;
matriceBuni[4][7] = 9;
matriceBuni[5][1] = 6;
matriceBuni[5][2] = 3;
matriceBuni[5][5] = 7;
matriceBuni[5][6] = 4;
matriceBuni[6][0] = 7;
matriceBuni[6][1] = 3;
matriceBuni[6][3] = 2;
matriceBuni[6][5] = 9;
matriceBuni[7][0] = 1;
matriceBuni[7][1] = 8;
matriceBuni[7][7] = 5;
matriceBuni[7][8] = 9;
matriceBuni[8][4] = 8;
matriceBuni[8][5] = 1;
matriceBuni[8][6] = 2;
for(int m = 0; m < 9; m++) {
for(int n = 0; n < 9; n++) {
System.out.print(matriceBuni[m][n] + " ");
}
System.out.println();
}
System.out.println("*****************************************");
for(int r = 0; r < 9; r++) {
for(int c = 0; c < 9; c++) {
if(matriceBuni[r][c] == 0) {
boolean isUnique = false;
while(!isUnique) {
int uniqueNumber = getRandomNumberInRange(1,9);
int countUnique = 0;
for(int a = 0; a < 9; a++) {
if (matriceBuni[r][a] == uniqueNumber) {
countUnique++;
}
}
for(int b = 0; b < 9; b++) {
if (matriceBuni[b][c] == uniqueNumber) {
countUnique++;
}
}
if (countUnique == 0) {
isUnique = true;
matriceBuni[r][c] = uniqueNumber;
}
}
}
}
}
for(int m = 0; m < 9; m++) {
for (int n = 0; n < 9; n++) {
System.out.print(matriceBuni[m][n] + " ");
}
System.out.println();
}
}
private static int getRandomNumberInRange(int min, int max) {
Random r = new Random();
return r.nextInt((max - min) + 1) + min;
}
}