如何在序言中創建nxn矩陣並在矩陣內部列出n爲1. 我可以爲生成列表創建編碼,但不知道如何創建矩陣nxn:序言:nxn矩陣的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).
如何在序言中創建nxn矩陣並在矩陣內部列出n爲1. 我可以爲生成列表創建編碼,但不知道如何創建矩陣nxn:序言:nxn矩陣的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).
重複使用您的代碼和您的想法。
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]].
有在Prolog中是沒有 「矩陣」 的數據類型,所以我們經常求助於使用列表列表(其中這些列表對應於矩陣的行)。有了耐心和專注,就有可能爲這種表示實現矩陣算術。 – hardmath