Rubyで配列の組み合わせを出してみた。
メモ書き。組み合わせを列挙する必要があったので、少しばかり頭をヒネってみた。
スクリプト
def combi (array, buffer, n) array.each { |val| buffer.push(val) if n == 1 then p buffer else combi (array, buffer, n-1) end buffer.pop } end combi([1, 2, 3], [], 3)
パラメータ
array | 組み合わせを行う配列 |
buffer | バッファ(空配列) |
n | 組み合わせを行う数 |
実行結果
> ruby combi.rb [1, 1, 1] [1, 1, 2] [1, 1, 3] [1, 2, 1] ... [3, 2, 3] [3, 3, 1] [3, 3, 2] [3, 3, 3]
変数bufferがあるのは、あんまり綺麗じゃないなぁ。
もっといい書き方があったら教えて下さいヽ(´ー`)ノ