用VB.Net写的一个控制台应用程序,数独求解的算法是穷举法,这种方法书写的代码比较少,但是比较耗时。
用VB6把数独求解的函数封装为一个dll文件,然后在Python中调用该dll里的函数,最后把求解的结果打印在网页上。
这个求解函数,前半部分采用了一些人工智能的技术,可以把难度很大的数独题目进行前期的排除、转换,使得这个题目变成简单题目,然后再用穷举和回溯。这种求解方法,遇到难度非常大的题目,也不超过3秒钟就可以算完。
以下是两个相对简单的题目:
002800600000006700000002031009030270000780000130600009080050003704008000013004000
020000040301020007800900300409300050080040000003005009100200630070403105004081002
以下是两个难度级别很高的题目:
000009010200000008000050040009000000014003000000700206001000000000620000000500000
080010000000700000004000005000004600000002000000000190000005004170090000600000002
以下是采用人工智能算法的动态图