2017-10-16 61 views
-2

我想写一个函数来确定矩阵中的所有对角线元素是相同的。如何获取矩阵中的所有诊断元素?

例如:

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

任何帮助表示赞赏。

+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. 
+0

你不需要结束第二行: - ?另外,最后一行不应该尾巴尾巴? –

相关问题