版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
【说在前面】:
之前,我在微信朋友圈看到一个同事发了一个状态,说的是她在家辅导孩子做作业,一个数独的题目,好像没有做出来。我看了下,我也做不出来,后来仔细想了下,花了两个多小时时间,用Python编了个程序,把那个数独题目解出来了。随后我就发了一个公众号的推送,这个推送被我老婆看见了,说:“人工解数独两分钟,你写个程序花两个多小时?!何必呢?”我说:“这个程序可以解答任何9×9的数独问题。”她说:“如果换一个数独题目,又要重新改代码,不太方便!而且我也不懂什么编程,不会用你的程序。”我想想也是,这也是我当初准备考虑用VBA的原因,就是因为VBA依托于电子表格,出题、解答、展示结果都比较直观,程序使用起来也比较方便。后来之所以用Python来编程,是因为Python处理这种大量数据计算比较方便快捷。
当初用Python编写程序,利用到了面向对象的编程方法,如果你不了解面向对象编程,可能对我之前写的程序理解起来有难度。所以我想着用VBA编程,采用面向过程的方式编写一个程序来解答数独问题。
这几个周末的闲暇时间,我一直在考虑用VBA来写一个解数独问题的程序,采用面向过程的方式来编写,这样便于理解。如果面向过程都搞定了,将来在转换到面向对象,就很容易了。我在网上查阅了很多资料,也看了很多网友写的程序,都测试了一下,基本上都满足不了我的需求。不是解题太慢,就是解不出来,解答一些骨灰级难度的数独,还导致死机,系统电脑直接卡死、崩溃。有的还需要使用“猜测法”来解数独,感觉超级不爽。
好吧!既然动了用VBA解数独的心思,那就必须得搞定。于是,想了几天,反复测试,编写代码,终于搞定了。一般数独可以秒解。
我在网上查了很多资料和其他网友写的程序,都没有我这个厉害,找一个骨灰级难度的数独,解出来也就两分多钟。网上一些朋友提供的数独程序,骨灰级别难度的数独,根本解决不了。
以上就是一个骨灰级别难度的数独,用的程序解出来了。尝试了661773次,耗时207.829秒。是不是很牛X。我在网上还没有发现有谁用VBA写出过能这么快解数独的程序。
看视频演示,全网最强VBA解答数独问题!
注意:全网最强!强!!强!!!
不服来战~!