所以我的目标是编写解决数独谜题的方法,我们给出了方法stub“public int [] [] solve(int [] [] board)”。我们应该使用arc consistency和domain splitting来找到解决方案。
- 我开始这样做的方法是在棋盘上创建一个点的哈希映射(键)及其当前域(除非给出,否则初始化为1..9) - &gt; HashMap<Point, ArrayList<Integer>> curDomains = new HashMap<Point, ArrayList<Integer>>();
虽然我不确定这是否是最好的数据结构。
- 我的问题是如何表示弧和约束?我有算法的伪代码,但我不知道如何在java中表示约束/弧。表示 C的最佳方式是什么:要满足的约束条件(它们是数独板上的有效位置)以及我的弧A&lt; X,c>其中X是Point,c是约束。
我提前感谢您提供有用的评论。
答案 0 :(得分:0)
在使用Arc一致性时,最好阅读与数据结构相关的理解。希望这会对你有所帮助!
以上链接将为您提供重定向通知,只需访问该大学网站并下载PDF。
祝你好运!