如何在Prolog中创建n x n矩阵,矩阵内部是n到1的列表。 我可以为生成列表创建编码,但不知道如何创建矩阵n x n:
make_num_list(N, List) :-
make_list(N, List).
make_list(N, []) :-
N =< 0,
!.
make_list(N, [N|Rest]) :-
N > 0,
N2 is N - 1,
make_list(N2, Rest).
答案 0 :(得分:1)
重复使用您的代码和您的想法。
make_num_matrix(N, Matrix) :-
make_matrix(N, N, Matrix).
make_matrix(_, N, []) :-
N =< 0,
!.
make_matrix(M, N, [R|Rs]) :-
make_list(M, R),
N2 is N - 1,
make_matrix(M, N2, Rs).
make_list(N, []) :-
N =< 0,
!.
make_list(N, [N|Rest]) :-
N > 0,
N2 is N - 1,
make_list(N2, Rest).
?- make_num_matrix(4, M).
M = [[4, 3, 2, 1], [4, 3, 2, 1], [4, 3, 2, 1], [4, 3, 2, 1]].
答案 1 :(得分:1)