1

定义一个判定矩阵(正方形)是否关于主对角线对称的谓词。谓词将读取,其中 Z 是关于主对角线对称的矩阵(正方形)

对称 (Z)

这个想法是检查行和列是否相等,但不知道如何开始提高练习......

4

2 回答 2

3
symmetrical(Z) :-
   transpose(Z,Z).

Now, you only need to define transpose!

于 2012-11-07T18:40:51.747 回答
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.

请注意,我在看到@gusbro 评论之前写了这篇文章,但这正是他所建议的......

于 2012-11-07T19:48:20.820 回答