【Ruby3.x】Array::repeated_combination()メソッドの使い方
repeated_combinationメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
repeated_combinationメソッドは、レシーバである配列から、重複を許して要素を選び出す組み合わせを生成するメソッドです。このメソッドは、指定された長さ(引数n)の組み合わせをすべて列挙します。生成される各組み合わせでは、配列の同じ要素を複数回選ぶことが可能で、要素の順序は考慮されません。例えば、[1, 2]という配列に対して長さ2の重複組み合わせを求める場合、結果として[1, 1], [1, 2], [2, 2]のような組み合わせが得られます。
引数としては整数nを受け取ります。このnは、生成する組み合わせの要素数、つまり組み合わせの長さを指定します。
ブロックが与えられない場合、このメソッドは生成される組み合わせを要素とするEnumeratorオブジェクトを返します。Enumeratorを使うことで、必要に応じて組み合わせを一つずつ取り出したり、他のコレクション操作メソッドと組み合わせたりできます。一方、ブロックが与えられた場合は、生成される各組み合わせをそのブロックに渡して実行します。この場合、メソッド自体はレシーバである元の配列を返します。
このメソッドは、例えば商品のラインナップから重複を許して複数個を選ぶパターンを考えたり、数値の集合から特定の長さで重複を許した組み合わせパターンを網羅的に調べたりするなど、重複を伴う組み合わせのパターンを効率的に生成したい場面で大変役立ちます。
構文(syntax)
1[1, 2].repeated_combination(2).to_a
引数(parameters)
n
- n: Integer: 組み合わせる要素の数を指定する整数
戻り値(return)
Enumerator または Array
repeated_combination メソッドは、配列の要素から重複を許して指定された数だけ組み合わせを生成する Enumerator オブジェクト、またはその組み合わせをすべて配列として返します。