2017-04-16 94 views
0

例如,我有这样的序言二维数组:如何在prolog中查找二维数组中的最大数量?

[1 ,2 ,3]. 
[4 ,1 ,3]. 
[1 ,3 ,4]. 

如何找到在这个二维数组最大数量? (这是“4”)

(所以我可以写一些代码,检查是否max为偶数或奇数,返回“真” /“假”为我的序言功能)

+2

首先,你需要告诉我们你是如何代表二维数组。到目前为止你所定义的谓词是什么?你有什么尝试? – vmg

+0

通常情况下,要找到最大值,请取第一个元素,然后继续与下一个元素进行比较,保留较大的元素。一旦你不在元素你知道你有最大的。 – 2017-04-17 11:21:59

回答

0

假设你代表矩阵列表的列表,你有一个谓词来获取列表的最大值(这里,我用max_list/2从SWI-Prolog的),你可以做这样的:

max_matrix(L, M) :- 
    maplist(max_list, L, Ms), 
    max_list(Ms, M). 

边缘案件和其他怪癖留给你...