このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 158代目 #559 # [1] 授業単元: C言語 # [2] 問題文:文字列の全パターンを表示するプログラム # 実行結果例 # >abc # abc # acb # bca # … # 文字列の全パターンを表示する(_文字列) :- 文字列を文字ならびに変換して要素数を得る(_文字列,_文字ならび,_要素数), 文字ならびの全パターンを表示する(_文字ならび,_要素数). 文字列を文字ならびに変換して要素数を得る(_文字列,_文字ならび,_要素数) :- atom_chars(_文字列,_文字ならび), length(_文字ならび,_要素数). 文字ならびの全パターンを表示する(_文字ならび,_要素数) :- forall(全パターンを(_文字ならび,_要素数,L),表示する(L)). 全パターンを(_文字ならび,_要素数,L) :- between(1,_要素数,N), 順列(_文字ならび,N,L). 表示する(L) :- atomic_list_concat(L,S), writef('%t\n',[S]). 順列(Y,0,[]). 順列(Y,N,[A|X]) :- select(A,Y,Z), M is N - 1, 順列(Z,M,X).