2017-04-16 96 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). 

邊緣案件和其他怪癖留給你...