题目如上图:
prolog 代码如下,也是刚学而已, 其中 =:= 标识相等判断, =\= 不相等, 逗号 表示 与 条件 ,分号标识 或条件
%X Y Z 分别表示 百 十 个 %根据条件1可以推出 当 X = 6 时, Y 不等于 8,2, Z 也不等于8,2 % 没有列举全 test_password1(X, Y, Z) :- (X =:= 6,Y =\=8, Z =\= 2); (X =\= 6,Y =:=8, Z =\= 2); (X =\= 6,Y =\=8, Z =:= 2). % 也没有列举全 test_password2(X, Y, Z) :- test_password1(X, Y, Z), ((X =:= 1, Y =\= 1, Z =\= 4); (X =:= 4, Y =\= 1, Z =\= 4); (X =\= 6, Y =:= 6, Z =\= 4); (X =\= 6, Y =:= 4, Z =\= 4); (X =\= 6, Y =\= 1, Z =:= 6); (X =\= 6, Y =\= 1, Z =:= 1)). test_password3(X, Y, Z) :- test_password2(X, Y, Z), (( X =:= 0, Y =:= 6, Z =\= 2); ( X =:= 0, Y =:= 2, Z =\= 6); ( X =:= 0, Y =\= 6, Z =:= 2); ( X =\= 6, Y =:= 2, Z =:= 0); ( X =\= 0, Y =:= 6, Z =:= 2); ( X =\= 6, Y =:= 2, Z =:= 0)). test_password4(X, Y, Z) :- X =\= 7, X =\= 3, X =\= 8, Y =\= 7, Y =\= 3, Y =\= 8, Z =\= 7, Z =\= 3, Z =\= 8. test_password5(X, Y, Z) :- test_password3(X, Y, Z), ((X =:= 7, Y =\=8, Y =\= 0, Z =\=8, Z =\= 0); (X =:= 0, Y =\=7, Y =\= 8, Z =\=7, Z =\= 8); (Y =:= 8, X =\=7, X =\= 0, Z =\=7, Z =\= 0); (Y =:= 0, X =\=7, X =\= 8, Z =\=7, Z =\= 8); (Z =:= 8, X =\=7, X =\= 0, Y =\=7, Y =\= 0); (Z =:= 7, X =\=8, X =\= 0, Y =\=0, Y =\= 8)). check_password5(X, Y, Z) :-test_password5(X, Y, Z) , test_password4(X, Y, Z) .
加载运行结果如图:
这。。。