- 522 名前:デフォルトの名無しさん [2007/10/11(木) 23:29:24 ]
- 途中で送ってしまいました・・・
組合せを列挙するLispのプログラムを作ってます。 (A B C D)みたいな文字列があったら (A B C) (A B D) (A C D) (B C D) です。 関数の再帰だけ使って書かないといけないんですが、考え方がよくわからなくて・・・ (comb hoge k)みたいな関数を定義します。hogeは文字列でkは取り出す数とします。 まず(A)選んで そのAと(comb (hoge-top) (k-1))を再帰的にくっつければ(A B C)はつくれるんですが、それ以降ができません。 hoge-topっていうのは(ABCD)の先頭を取り除いた(BCD)です。Lispにはそういう機能があって(car 〜)ってやつです ご教授願います
|

|