【Ruby3.x】Array::combination()メソッドの使い方
combinationメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
combinationメソッドは、レシーバとなるArrayオブジェクト(配列)から、指定された数の要素を順序を考慮せずに組み合わせる部分配列を生成するメソッドです。
このメソッドに整数nを引数として渡すと、配列の要素の中からn個の要素を選んだすべての組み合わせを列挙します。ここでいう「組み合わせ」とは、要素の並び順が異なっていても内容が同じであれば同一とみなされるものを指します。例えば、[1, 2, 3]という配列から2つの要素を選ぶ組み合わせは、[1, 2]、[1, 3]、[2, 3]となります。[2, 1]は[1, 2]と同じ組み合わせとして扱われます。
ブロックが与えられた場合、生成された各組み合わせ(部分配列)を引数として、そのブロックを順次実行します。ブロックの実行が完了すると、元の配列を返します。一方、ブロックが与えられない場合は、組み合わせを順次生成するためのEnumeratorオブジェクトを返します。このEnumeratorオブジェクトを使うことで、後からeachメソッドやto_aメソッドなどを利用して、組み合わせを柔軟に処理することが可能です。
このメソッドは、候補となるリストの中から複数の選択肢を順不同で選び出す場合や、可能な組み合わせをすべて試すようなアルゴリズムの実装に役立ちます。
構文(syntax)
1[element1, element2, ...].combination(n)
引数(parameters)
n
- n: 組み合わせの要素数を指定する整数
戻り値(return)
Enumerator または self
Arrayクラスのcombinationメソッドは、配列から指定されたサイズの組み合わせを生成するEnumeratorオブジェクトを返します。このEnumeratorオブジェクトをブロックで処理することで、各組み合わせを取得できます。