数独出题与破解器

关于数独,我们应该并不陌生,这是个比较老牌的数字游戏,非常锻炼人的思维能力。
很多电影中描述主角牛逼,就是在空闲的时候,拿着报纸或者数独题库狂刷,以展现其高智商。
从此奠定了数独在数字游戏领域的大哥地位。
数独的规则也简单,简而言之:
	1、所需数字:阿拉伯数字1-9,顺着数,倒着数,数到空空都填满,OK,过关了。
	2、游戏地图:九个九宫格,横排不重复,竖排不重复,每个小九宫格也不重复。
难易之分:根据一个空格有几个可填项,可以将数独分阶,只有一个可填项的,就是一阶,依次类推。
曾经我也刷过不下数百个题,于是想写一个小程序,根据给出的题型,迅速、自动、正确填出剩余所有空。
但是苦于不想自己手动录入题库,首先,我写了一个自动出题的程序,存储方式为长度为81的字符串。
原理类似暴力破解,用递归的方式分支填值,本以为这个题库不会很大。
后来实现跑了一下,纯文本,已经达到了300M,还没结束的意思。果断暂停了。
上网搜了一下,这个题库虽然是有限的,但这个有限数字却大的吓人。
6,670,903,752,021,072,936,960。
只能说,跑程序之前,最好还是先验算一下极限。免得到时宕机。
另外,出题库这段程序,稍加改动,就可以实现自动填值,就是大家梦寐以求的一键得结果。
有兴趣的朋友可以联系我,有源码。
QQ:173726284

你可能感兴趣的:(数字逻辑)