次のコマンドは、リストから組み合わせを生成しますが、順方向のみです。
(combinations '(0 0 1 1) 2)
'((0 0) (0 1) (0 1) (0 1) (0 1) (1 1))
組み合わせ(1 0)は生成されません。
同様に:
(combinations '(0 0 1 1) 3)
'((0 0 1) (0 0 1) (0 1 1) (0 1 1))
(1 0 0)(1 0 1)などは生成されません。
このコマンドですべての可能な組み合わせを出力するにはどうすればよいですか?
まさにその定義によると(私の強調):
「...組み合わせは、コレクションからアイテムを選択する方法であり、(順列とは異なり)選択の順序は重要ではありません。」
言い換える(0 1)
と、と(1 0)
は同等であり、combinations
プロシージャは、指定された入力に対して可能なすべての組み合わせをすでにリストしています。おそらく、いくつかのリストのデカルト積に興味がありますか?
(cartesian-product '(0 1) '(0 1))
=> '((0 0) (0 1) (1 0) (1 1))
(cartesian-product '(0 1) '(0 1) '(0 1))
=> '((0 0 0) (0 0 1) (0 1 0) (0 1 1) (1 0 0) (1 0 1) (1 1 0) (1 1 1))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加