你的奶奶最近对解二进制谜题产生了浓厚的兴趣。 虽然她越解越熟练,但还是常常会卡住。 作为贴心的孙辈,你决定写一个小应用,能解开任何二进制谜题。 这样你就能给奶奶提示她的下一步了。
你的任务是解出一个二进制谜题。 每个二进制谜题都恰好有 一个 解,应用以下规则就能找到它:
你拿到的谜题是未完成的,由多行 0 和 1 组成,未知的值用占位符(_)表示。
目标是定义这个二进制谜题的规则,好让测试推断出占位符的值(这一步不需要你来做)。
你的实现必须使用 Prolog 的有限域约束逻辑编程(CLP(FD)),它非常适合这类任务。
为了帮你上手,桩文件已经通过下面这行代码引入了 clpfd 库:
:- use_module(library(clpfd)).