이 기사에서는 2 차원 어레이를 기반으로 Java가 구현 한 스도쿠 문제에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
여기서 우리는 Java 2 차원 어레이를 사용하여 스도쿠 문제를 구현합니다.
(1) 간단한 스도쿠 생성 (2) 스도쿠 문제 생성 **
암호
import java.util.random; import java.util.arraylist; public class suduku { / ***인쇄 2 차원 배열, sudoku matrix* / public static void printarray (int a [] []) {int i = 0; i <9; i ++) {(int J = 0; +[J]); 정적 ArrayList <integer> Creatninerondomarray () {arraylist <integer> list = random random = new random (); List.add (randomnum)} random.nextint (9)}}}}. } system.out.println (); 반환 목록; } /*** 1 차원 배열과 원래 배열을 통해 임의의 스도쿠 행렬을 생성하십시오** 2 차원 배열에서 데이터를 전송하고, 1 차원 배열에서 현재 값의 위치를 찾아서 1 차원 배열*를 할당하고 현재 2 차원 배열에 위치 값을 할당하십시오. 목적은 1 차원 배열을 기초로 사용 하고이 9 개의 데이터를 임의의 순서로 교환하여 임의의 스도쿠 매트릭스를 생성하는 것입니다. * */ public static void CreatsudokuArray (int [] [] eightArray, arraylist <integer> randomList) {for (int i = 0; i <9; i ++) {for (int j = 0; j <9; j ++) {for (int k = 0; k <9; k ++) {[jectarray [i]). seedArray [i] [j] = randomList.get ((k+1)%9); 부서지다; }}}} system.out.println ( "처리 된 배열"); suduku.printarray (Seedarray); } public static void creatsudokuquestion (int [] [] a) {random rand = new random (); for (int i = 0; i <9; i ++) {for (int j = 0; j <4; j ++) {a [i] [(int) rand.nextint (9)] = 0; }} suduku.printarray (a); } // public static void main (string [] args) {int seedarray [] [] = {{{9,7,8,3,1,6,4,4,5}, {3,1,2,6,4,5,5,9,8}, {6,4,5,9,7,8,1,1,2}, {7,8,9,1,2,3,4,5,6,7,8,9}, {1,2,3,4,5,6,8,9}, {4,5,6,7,8,9,1,1,2,3}, {8,9,7,7,2,1,5,6,4,4}, {2,15,4,4,9,9,7,7}. {5,6,4,8,9,7,2,3,1}}; System.out.println ( "원래 2D 배열 :"); suduku.printarray (Seedarray); ArrayList <integer> randomList = suduku.creatninerOndomArray (); suduku.creatsudokuarray (seedarray, randomlist); System.out.println ( "스도쿠 문제 생성 :"); suduku.creatsudokuquestion (씨앗); }}산출:
9 8 3 1 2 4 5 6 4 9 7 5 6 4 8 9 7 7 2 3 1 5 6 4 9 7 2 3 1 5 6 8 9 7 5 6 8 9 7 7 2 3 1 5 6 8 9 7 5 6 4 8 9 7 2 3 1 5 6 8 9 7 7 2 3 1 5 6 4 9 7 5 6 4 8 9 7 7 2 3 7 8 2 4 1 5 7 8 2 4 7 4 4 8 8 1 5 7 9 8 8 8 8 8 4 4 4 4 1 5 1 5 7 9 8 8 8 0 5 7 0 2 4 1 0 7 9 6 0 5 0 1 6 0 9 2 0 0 6 0 9 2 0 0 5 7 0 2 0 0 6 0 9 2 0 0 5 7 0 2 0 0 6 0 9 2 0 0 5 7 0 2 0 0 5 7 0 2 0 0 6 0 9 2 0 0 5 7 0 2 0 0 5 7 0 2 0 0 6 0 9 2 0 0 5 7 0 2 0 0 5 7 0 2 0 0 6 0 0 5 7 0 2 0 0 6 0 0 5 7 0 2 0 0 6 0 6 0 9 2 0 5 7 0 0 5 7 0 0 0 0 6 0 6 0 6 0 9 2 0 5 7 0 0 5 7 0 6 0 6 0 6 0 9 2 0 5 7 0 5 7 0 2 0 6 0 6 0 9 2 0 0 5 7 0 0 0 5 7 0 0 0 0 0 0 0 6 7 0 2 0 7 0 0 0 0 0 0 5 7 0 2 0 0 0 0 0 0 0 0 5 7 0 2 0 7 7 7 0 7 0 0 0 0 0 0 5 7 0 0 0 7 7 7 0 6 7 0 0 5 7 0 0 0 0 0 0 5 7 0 0 0 0 0 0 5 7 2 0 0 0 0 0 5 7 2 0 0 0 0 0 0 5 7 0 2 7 0 6 7 0 2 0 5 7 0 2 0 8 2 0 6 4 8 2 7 0 5 4 8 2 7 0 3 9 6
Java 알고리즘에 대한 자세한 내용은이 사이트에 관심이있는 독자들이 주제를 볼 수 있습니다. "Java 데이터 구조 및 알고리즘 자습서", "Java Operation Dom Node Tips 요약", "Java 파일 및 디렉토리 작동 팁 요약"및 "Java Cache Operation Tips의 요약"을 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.