2010-12-05 15 views
2

行列の各行と列を合計し、それらがすべて同じかどうかをチェックします。 行の和と転置方法を使用していますが、すべての行と列の合計が同じかどうかを確認する方法はありませんでした。Prolog - すべての行と列の合計

アルゴリズムのガイダンスを教えてください。 ありがとうございました。

答えて

1

合計を計算するときは、常に同じ変数を使用してください。
この例では、行に対してどのように処理されるかを示します。

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

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

あなたは述語sum_listを使用することができます列の行をチェックするには、次の

​​:次に、このように、行の合計を見つけるためにsum_listを使用

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

これは、行の合計のリストを返します。

関連する問題