200分 求数独解题C源码(不要穷解法)

来源:百度知道 编辑:UC知道 时间:2024/06/07 00:29:03

这种东西不穷举还能怎么处理...

--

还是说你认为回溯不算穷举|||

想了一下,充其量用某些可能自找麻烦的方法限制一下回溯的范围。但是最后的结果还是一个巨型的不定线性方程组...

同学,这个是我自己写的一个,你看看

前面是模仿人的思维写的,后面的用了深度优先猜测判断。

http://blog.xdnice.com/blog-499995-219135.html

下面这个是网上流行的,但是只能在dos下运行。
#include <stdio.h>
#include <stdlib.h>

int sudoku[81] ; /* 数独题目阵列 */
int tempNum[81] ; /* 上一次填数位置 */
int tempSp= 0 ; /* 上一次填数位置指标 */
int startH[81] ; /* 列位置的起点 */
int startV[81] ; /* 行位置的起点 */
int startB[81] ; /* 九宫格位置的起点 */
int addH[9] ; /* 列位置的加值 */
int addV[9] ; /* 行位置的加值 */
int addB[9] ; /* 九宫格位置的加值 */

int main(int argc, char *argv[]) {
int j ;
if(argc>1) for(j=0; j<81; j++) sudoku[j]= argv[1][j]-'0' ;
else exit(0) ;
printf( "----------\n");
printSudok