如何获取矩阵中的所有诊断元素?

时间:2017-10-16 07:52:34

标签: matrix prolog diagonal

我想写一个函数来确定矩阵中的所有对角线元素是相同的。

例如:

?-diagonal([[1,2,3,4],
            [2,1,5,6],
            [6,2,1,9],
            [8,7,5,1]]).
  true.

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

问题解决了......

diagonal([],_,_).
   diagonal([Head|Tail],Index,Value),
   nth0(Index,Head,Value),
   IndexNext is Index+1,
   diagonal(tail,IndexNext,Value).

测试:

?- diagonal([[1,2,3],
             [5,1,6],
             [9,3,1]],0,X).
   X=1.