开发者

Prolog - sum of any every row and column

开发者 https://www.devze.com 2023-01-28 04:49 出处:网络
I want to sum up each row and column in matrix and check whether all of it are the same. I want to use sum of row and transpose method to do it, but I had no ideas how it 开发者_如何学运维can check wh

I want to sum up each row and column in matrix and check whether all of it are the same. I want to use sum of row and transpose method to do it, but I had no ideas how it 开发者_如何学运维can check whether sum of every row and column are the same.

Can please give me some algorithm guidance?


Just always use the same variable when computing the sum.
This example shows how it's done for rows.

checkRowSums([], _).
checkRowSums([Row|R], Sum) :- rowSum(Row, Sum), checkRowSums(R, Sum).

?- checkRowSums([[1, 5], [2, 4], [1, 2, 3]], _).


To check the rows in a column you can use the predicate sum_list:

sum_list([], 0). sum_list([H|T], Sum) :- sum_list(T, Rest), Sum is H + Rest.

Then use sum_list to find the total sum of the rows, like this:

sum_rows([],[]). sum_rows([Head|Tail], [Ret|Return]) :- sum_list(Head, Ret), sum_rows(Tail, Return).

This will return a list of the row sums.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号