【Ruby3.x】Array::permutation()メソッドの使い方
permutationメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
permutationメソッドは、配列の要素から可能な限りの順列(要素の並び替え)を生成するメソッドです。このメソッドはArrayクラスのインスタンスに対して呼び出され、元の配列に含まれる要素を異なる順序で並べた、考えられるすべての組み合わせを列挙する機能を提供します。データの中から特定の順序パターンを見つけ出したい場合や、組み合わせ論的な問題を解決する際に非常に有用です。
このメソッドには、オプションとして生成する順列の要素数を引数として指定できます。例えば、[1, 2, 3]という配列に対してpermutation(2)と呼び出すと、2つの要素からなる順列、具体的には[1, 2], [1, 3], [2, 1]などが得られます。引数を省略した場合、元の配列のすべての要素を使って順列が生成されます。
もしメソッド呼び出し時にブロックが与えられれば、生成された各順列はそのブロックに引数として渡され、ブロック内の処理が実行されます。ブロックが与えられない場合、permutationメソッドはEnumeratorオブジェクトを返します。このEnumeratorオブジェクトを利用することで、必要に応じて順列を一つずつ取り出したり、to_aメソッドなどを用いてすべての順列を配列として取得したりすることが可能です。
構文(syntax)
1[element, ...].permutation(length) { |permutation_array| # ... }
引数(parameters)
n
- n: Integer: 配列から取り出す要素の数を指定する整数
戻り値(return)
self or Enumerator
Arrayクラスのpermutationメソッドは、配列の要素の順列を生成します。ブロックが与えられていない場合は、順列を順番に生成するEnumeratorオブジェクトを返します。ブロックが与えられている場合は、各順列に対してブロックが実行され、メソッド自体の戻り値はself(元の配列)となります。