定义一个谓词,用于确定矩阵(正方形)是否与主对角线对称。谓词会读到,其中Z是关于主对角线对称的矩阵(正方形)
对称(Z)
想法是检查行和列是否相等,但不知道如何开始提升练习...
答案 0 :(得分:3)
symmetrical(Z) :-
transpose(Z,Z).
现在,您只需要定义转置!
答案 1 :(得分:0)
好的旧矩阵I,J索引:
symmetrical(M) :-
forall(elem(M, I, J, E), elem(M, J, I, E)).
elem(M, I, J, E) :-
nth1(I, M, R),
nth1(J, R, E).
试验:
?- symmetrical([[a,b],[b,a]]).
true.
?- symmetrical([[a,b],[a,b]]).
false.
note 我在看到@gusbro评论之前写过这篇文章,但这正是他所建议的......