Ruby 配列の指定した数の組み合わせを取得する

Ruby 配列の指定した数の組み合わせを取得する

Rubyで、配列の指定した数の組み合わせを取得するソースコードを記述してます。

環境

  • OS windows11 home
  • ruby 3.1.2p20

配列の指定した数の組み合わせを取得する

配列の指定した数の組み合わせを取得するには、「combination().entries」を使用します。

配列.combination(組み合わせる数).entries

実際に使用してみます。

arr = [1, 2, 3, 4, 5]

p arr.combination(2).entries
# [[1, 2], [1, 3], [1, 4], [1, 5], [2, 3], [2, 4], [2, 5], [3, 4], [3, 5], [4, 5]]

p arr.combination(3).entries
# [[1, 2, 3], [1, 2, 4], [1, 2, 5], [1, 3, 4], [1, 3, 5], [1, 4, 5], [2, 3, 4], [2, 3, 5], [2, 4, 5], [3, 4, 5]]

p arr
# [1, 2, 3, 4, 5]

組み合わせが全通り取得されていることが確認できます。

「combination」の引数に「0」や「1」、最大値を指定すると以下の結果となります。

arr = [1, 2, 3, 4, 5]

p arr.combination(0).entries
# [[]]

p arr.combination(1).entries
# [[1], [2], [3], [4], [5]]

p arr.combination(5).entries
# [[1, 2, 3, 4, 5]]

p arr.combination(6).entries
# [[]]

p arr
# [1, 2, 3, 4, 5]

順列を作成する場合は「permutation」を使用します。

arr = [1, 2, 3, 4, 5]

p arr.permutation(2).entries
# [[1, 2], [1, 3], [1, 4], [1, 5], [2, 1], [2, 3], [2, 4], [2, 5], [3, 1], [3, 2], [3, 4], [3, 5], [4, 1], [4, 2], [4, 3], [4, 5], [5, 1], [5, 2], [5, 3], [5, 4]]

p arr
# [1, 2, 3, 4, 5]

空の配列

空の場合は、そのまま空の配列が返ります。

arr = []

p arr.combination(0).entries
# []

p arr.combination(2).entries
# []

p arr.combination(5).entries
# []

p arr.combination(6).entries
# []

p arr
# []