矩阵中的独特元素

时间:2015-11-22 23:12:59

标签: list matrix prolog

我有一个矩阵,每个元素都应该是唯一的。说实话,每个元素都可以在[1,19]中取整数值,但是我对使用length(List, 3)的变量处理列表感到困惑,所以现在我有这个:

matrix([[a,b,c],[d,e,f],[g,h,i]]).

row(M, N, Row) :-
    nth1(N, M, Row).

column(M, N, Col) :-
    transpose(M, MT),
    row(MT, N, Col).

get_row(N, Row) :-
    matrix(M),
    row(M, N, Row).

diff_matrix(M) :-
    matrix(M),
    foo(M).

foo([]).
foo([H|T]) :-
    length(H, Len),
    write(Len),
    foo(T).

different_from([], _).
different_from([H|T], E) :- 
    E \= H, 
    different_from(T, E).

是否有继续使用此代码或其他方法的想法?我的意思是如果我的尝试不够好,我没有问题替换它。

修改

  1. 我有原子,因为我不知道如何约束变量 在[1,19]里面,所以我现在试图让它与原子一起使用!
  2. 我希望我的代码测试矩阵是否包含唯一元素,即for 在矩阵中找到的每个元素,都没有重复的元素 矩阵。
  3. 到目前为止,我只有那些应该有所帮助的谓词,仅此而已 我被卡住了。
  4. 可能的查询:diff_matrix([[1,2,3],[4,5,6],[7,8,9]]).

0 个答案:

没有答案