このディレクトリの索引

# 出典 :: Python の宿題ここで答えます Part 1 #902 # 個数Nが与えられたとき # N個の自然数の合計が10になるような組み合わせをすべて列挙する # プログラムを書け '個数Nが与えられたとき N個の自然数の合計が10になるような組み合わせをすべて列挙する' :- forall('N個の自然数の合計が10になるような組み合わせを'(_組合せ式表示),writef('%w\n',[_組合せ式表示])). 'N個の自然数の合計が10になるような組み合わせを'(_組合せ式表示) :- 重複組合せ([1,2,3,4,5,6,7,8,9,10],N,L), sum_list(L,10), concat_atom(L,' + ',_組合せ式表示). 重複組合せ(L,1,[A]) :- member(A,L). 重複組合せ([A|Y],N,[A|X]) :- N > 1, M is N - 1, 重複組合せ([A|Y],M,X). 重複組合せ([_|Y],N,A) :- N > 1, 重複組合せ(Y,N,A).