标签:
前几天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,轻松解出来~~~
标签:
原文地址:http://www.cnblogs.com/tudou008/p/5197484.html