回溯法數獨求解

2022-07-08 02:57:09 字數 1321 閱讀 5059

public

class

sodutest ,//,

//,//,

//,//,

//,//,

//

//包含兩個解的,,

,,,,

,,

};public

static

void

main(string args)

/*** 核心演算法,利用遞迴回溯,求出所有解

* @param

x 起始第 x 行

* @param

y 起始第 y 列

* @return

*/private

boolean getsoduanswer(int x, int

y)

//換行

x++;

y = 0;

}//如果不為0,直接計算下乙個數

if(this.sodu[x][y] != 0)

//嘗試 1-9 是否滿足條件

for(int i = 1; i <= 9; i++)

else}}

return

false

; }

/*** 判斷值是否合理

* @param

x *

@param

y *

@param

sodunum

* @return

*/private

boolean checksodunum(int x, int y, int

sodunum)

if(this.sodu[i][y] ==sodunum)

}//求出左上角座標

int a = x - (x % 3);

int astop = a+3;

int b = y - (y % 3);

int bstop = b+3;

//判斷當前方框內是否有重複

for(a = x - (x % 3);a) }}

return

true

; }

/*** 列印陣列

* @param

sodu

*/public

static

void printsodu(int

sodu)

system.out.print(soduy);

}system.out.println();

if(i != 0 && (i+1) % 3 == 0) }}

}

回溯法數獨求解

public class sodutest 包含兩個解的,public static void main string args 核心演算法,利用遞迴回溯,求出所有解 param x 起始第 x 行 param y 起始第 y 列 return private boolean getsoduansw...

回溯法解數獨

前天在我的小pad上裝了個數獨遊戲,完了幾把後興趣索然了。不過突然想起來一直想寫個解數獨的程式,不過因為懶和拖拉,就一直沒寫。今天花了30分鐘寫了個解數獨的程式,貼 include include include 某個數字填入後,需要檢查的index void get affected index ...

回溯演算法 解數獨

假設 判斷 假設 class solution def solve self,arr self.helper arr,0 defhelper self,arr,index if index 81 print arr return else if arr index 0 0代表需要填充資料 for i...