矩阵(正方形)关于主对角线对称

时间:2012-11-07 16:49:27

标签: prolog

定义一个谓词,用于确定矩阵(正方形)是否与主对角线对称。谓词会读到,其中Z是关于主对角线对称的矩阵(正方形)

对称(Z)

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

2 个答案:

答案 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评论之前写过这篇文章,但这正是他所建议的......