激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - java使用回溯法求解數(shù)獨示例

java使用回溯法求解數(shù)獨示例

2019-10-30 17:14java教程網(wǎng) JAVA教程

這篇文章主要介紹了java使用回溯法求解數(shù)獨示例,大家參考使用吧

代碼如下:


import java.util.Calendar;
import java.util.Date;

 

public class Matrix {

 private int matrix[][];
 private long timeAfter=0; 
 private long timeBefore =0;
 public Matrix(int m[][]) {
  matrix = new int[9][9];
  for (int i=0; i<9 ; i++)
   for(int j= 0; j<9; j++)
          matrix[i][j]=m[i][j];
  this.timeBefore = Calendar.getInstance().getTimeInMillis();
 }
 public void backTrack(int i, int j)
 {
  //回收系統(tǒng)內(nèi)存資源
  System.gc();
  if( i==8 && j>=9 )
  {
   this.timeAfter = Calendar.getInstance().getTimeInMillis();
   //成功輸出矩陣
   this.showMatrix();
   return;
  }

  if(j == 9) {j = 0; i++;}

  if(matrix[i][j] == 0)
  {
   //數(shù)字為零
      for(int k=1; k<=9; k++)
      {
       if(bound(i,j,k))
       {
        matrix[i][j] = k ;
        //符合條件,查找下一個方格
        backTrack(i,j+1);
        matrix[i][j] = 0 ;
       }
      }
  }else
  {
      //數(shù)字不為零,直接查找下一個
      backTrack(i, j+1);
  }
 }
 /**
  * 判斷要填入的數(shù)字和同行同列以及同一九宮格內(nèi)數(shù)字是否重復(fù)
  */
 private boolean bound(int i, int j, int k) {
  int m = i/3;
  int n = j/3;
  for(int p = 0; p<9; p++)
  {
   if(k == matrix[i][p])
   {
    return false;
   }
   if(k == matrix[p][j])
   {
    return false;
   }
   if(k == matrix[3*m+p/3][3*n+p%3])
   {
    return false;
   }
  }
  return true;
 }
 /**
  * 打印解題時間
  * @return
  */
 public long printTime()
 {
  return this.timeAfter-this.timeBefore;
 }
 /**
  * 打印矩陣
  */
 public void showMatrix()
 {
  for(int i=0; i<9; i++)
  {
   for(int j=0; j<9; j++)
   {
    System.out.print(matrix[i][j]+" ");
   }
   System.out.println ();
  }
  System.out.println ();
     System.out.println("解題時間: "+printTime()+"毫秒");
  System.out.println ();
 }
 public static void main(String[] args) {
     int matrix[][] = {
       {3,0,6,0,5,7,0,0,0},
       {7,9,0,0,2,4,0,0,0},
       {0,5,0,6,0,0,9,7,4},
       {8,0,1,0,0,9,0,0,0},
       {0,2,0,3,0,8,0,0,7},
       {4,0,0,0,6,0,5,0,0},
       {0,0,4,0,3,6,0,5,0},
       {2,0,3,7,0,5,0,0,1},
       {0,0,7,4,1,0,6,0,0}};

     int ma1[][]={
     {0,3,0,0,0,5,0,6,0},
     {0,1,0,0,0,3,0,8,0},
     {0,4,0,0,0,0,0,0,7},
     {0,0,7,0,2,4,0,0,0},
     {5,0,0,0,9,0,0,0,0},
     {0,8,0,3,0,0,5,0,0},
     {0,0,0,8,0,0,0,0,0},
     {0,0,9,0,0,0,0,7,3},
     {0,5,0,9,0,0,0,0,2}};

     int ma2[][]={
     {0,0,0,0,8,4,0,0,0},//8
     {0,0,0,2,0,3,0,8,0},
     {8,3,0,9,0,0,0,5,0},
     {0,5,3,0,9,0,7,0,0},
     {0,0,0,6,3,7,0,4,5},//7
     {0,7,0,5,0,0,0,0,0},
     {0,0,6,8,0,0,0,0,0},
     {3,0,0,0,2,9,0,0,0},
     {2,0,9,3,0,0,0,0,1}};//3

     // 號稱世界上最難數(shù)獨 
     int[][] sudoku = { 
     { 8, 0, 0, 0, 0, 0, 0, 0, 0 }, 
     { 0, 0, 3, 6, 0, 0, 0, 0, 0 }, 
     { 0, 7, 0, 0, 9, 0, 2, 0, 0 }, 
     { 0, 5, 0, 0, 0, 7, 0, 0, 0 }, 
     { 0, 0, 0, 0, 4, 5, 7, 0, 0 }, 
     { 0, 0, 0, 1, 0, 6, 0, 3, 0 }, 
     { 0, 0, 1, 0, 0, 0, 0, 6, 8 },  
     { 0, 0, 8, 5, 0, 0, 0, 1, 0 }, 
     { 0, 9, 0, 0, 0, 0, 4, 0, 0 }};

     Matrix m = new Matrix(sudoku);
     m.backTrack(0, 0);
 }

}

 

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: xxxx18韩国护士hd老师 | cosplay裸体福利写真 | 免费a级黄色毛片 | 国产午夜精品久久久久久久蜜臀 | 日韩精品中文字幕一区二区 | 亚洲人片在线观看 | 中国a级黄色片 | 国产视频99 | 国内成人自拍视频 | 成人毛片100部免费观看 | 91久久国产露脸精品免费 | 天天干导航 | 一区播放 | 成人做爰高潮片免费视频韩国 | av资源在线天堂 | 成人精品一区二区三区中文字幕 | 国产剧情在线观看一区二区 | 狼网| 综合日韩av | 永久免费不卡在线观看黄网站 | 韩国一大片a毛片 | 婷婷亚洲一区二区三区 | 亚洲精品v天堂中文字幕 | 国产99免费 | 特级西西444www大精品视频免费看 | 国产精品一区二区手机在线观看 | 国产www免费| 国产精品久久久久久久模特 | 精品一区二区久久久久久久网精 | 日韩在线观看视频一区二区三区 | 国产精品麻豆一区二区三区 | 久久精品视频网站 | 九九热视频这里只有精品 | 久久国产精品二国产精品中国洋人 | 天天看天天摸天天操 | 欧美不卡在线 | 欧美aⅴ视频| 日韩黄色片免费看 | 性爱免费视频 | av免费在线观看免费 | free korean xxxxhd|