下载地址:http://www.cppblog.com/Files/sunkai/sudoku.rar
由于只是为了描述算法并进行科学计算,我并没有编写很友好的GUI,只是在控制台下工作,不过算法为推理算法,它将模拟人解数独的思维进行推理,如果推理失败还可以用搜索算法解答,因此,只要输入的数独有解,那么就一定可以在较短时间内解出
RAR包内有两个程序,二者核心相同,只是表示方法不同,它们都只需要输入一个用数字描述的数独问题
数独中未知数用0表示,例如:
302008000000005001000000320840290000190000062000063049051000000900700000000500706
输入后其中一个名为sudoku_单步跟踪.exe程序在输入一个数独问题后按两次回车后开始推理过程,每推出一步输出一次并暂停,按回车可以继续进行下一步推理,直到出结果
另一个名为sudoku_非单步跟踪.exe的程序在输入一个数独问题后按一次回车后就自动推理(不暂停),同样显示每步推理信息,直到输出结果
以下提供多组数据供测试:
302008000000005001000000320840290000190000062000063049051000000900700000000500706
002000000105042000090005801040160000500000008000039040704900050000250104000000300
900007000080000602005102400000009516000000000651400000003908100408000060000200009
008000000000006070302700045000520060070000010050098000680001207010300000000000300
020090300000005000400600120900106078000000000170908006054009001000500000007030090
000000000040026009930008100003009074700000008890100300008700036300280040000000000
900104007480000020000205400102306709000000000508407306009508000010000040300609002
004003000700000000091607043000780069900000007210096000180305670000000008000900300
000090008010003650000100230170800000900246001000007082023001000081300040500060000
000040020000006010000810576730002100500000007009500082952038000060200000070050000
090003000000070600080000420010602500500000008003801060036000070005020000000300080
100004000000900080830050200300009070760305019080400006006010038070003000000600005
060000007000306090000010650008700560047000230051002400023050000090607000800000020
005000300000300904000054617010080000400501003000030070358760000204005000001000700
程序代码可能在日后公开