使用DLX算法解数独游戏。
初学Java,算法代码是由C代码转换的。
DLX.java是算法类,Sudoku.java是界面类。
解号称世界上最难的数独用时10ms以内。
DLX dlx = new DLX(n * n * n + 1, 4 * n * n);
dlx.setNum(5);//最多求5个解,默认为2
dlx.solve(data);//int data[9][9];
初学Java,算法代码是由C代码转换的。
DLX.java是算法类,Sudoku.java是界面类。
解号称世界上最难的数独用时10ms以内。
算法详解
使用方法
int n = 9;DLX dlx = new DLX(n * n * n + 1, 4 * n * n);
dlx.setNum(5);//最多求5个解,默认为2
dlx.solve(data);//int data[9][9];
List<int[][]> solutions = dlx.getSolutions();
代码下载
https://code.google.com/p/sudoku-dlx/source/checkout
DLX.java