休伊,杜威和路易被他们的叔叔质疑。这些是他们的陈述:约束编程布尔求解器
•休伊:“杜威和路易在这方面有相同的份额;如果一个人是有罪的,所以是其他“
•杜威:‘如果休伊是有罪的,那么我也是。’
•路易:‘杜威和我不都无罪’
。他们的叔叔知道他们是侦察员,他们意识到他们无法说谎。
我的解决方案。
var bool :D; var bool :L; var bool :H;
constraint D <->L;
constraint H -> D;
constraint D!=L;
solve satisfy;
output[show(D), "\n", show(L),"\n", show(H)];
Minizinc无法解决它。
我明白了为什么我不能写杜威!=路易? 给出 =====不合格===== 。 但不是(杜威和路易)作品 – user2975699
“杜威和我都不是两个有罪”可能是因为这两个都不是有罪。约束“dewey!= louise”意味着其中一个是有罪的(另一个是无罪的)。 – hakank