数独_erlang解题代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数独_erlang解题代码相关的知识,希望对你有一定的参考价值。

前几天LP玩数独,玩到大师级各种被虐,我看了看说,分分钟帮你做出来,

结果当然没有做出来。

技术分享

于是上网搜了下数独的解题代码,看了下C的代码,大多是递归之类的(如http://blog.sina.com.cn/s/blog_9e16dc4d01013s1y.html

于是想想,这种方法能不能用erlang实现呢?

尝试了一下,发现不行,因为2维数组,指针什么的在erlang完全没有,而且变量不变,所有要换个思路,既然erlang能够并发,那就并发的去填

技术分享

sd_one是使用唯一填入法和隐式唯一填入法(基础摒除法)来修正要填入的数字集,如果sd_one,运行完毕(所有的填入可选值没有变化),就使用sd_guess去猜测剩下的所有填法,猜出来就给主进程发ok消息

至于变量不能变化的问题,开始我想用ets,结果发现数据不多,进程字典更快,然后一切很就是秒秒钟出来了

技术分享

然后试了一下baidu里面号称很难的数独

技术分享

 o(^▽^)o,轻松解出来~~~

 

以上是关于数独_erlang解题代码的主要内容,如果未能解决你的问题,请参考以下文章

用PLSQL解决世界最难数独(不到1毫秒)

poj2676(数独 搜索)

随手练——数独 HDU - 5547 坑!坑!坑!

代码在数独中没有给出预期的结果

个人项目解题思路

获取 badarith,[erlang,'+',[error,0],[],同时使用 Erlang 片段在 TSUNG 中执行算术运算