LoginSignup
0
0

【Ruby】combinationメソッドで重複のない組み合わせを作る

Posted at

Rubyを使ったアルゴリズムについて学習しています。
今回はcombinationメソッドを使ったロジックの実装についてまとめました。

やりたいこと

数字(n個)の配列から、重複のない2個の組み合わせを選択するロジックを作成する。

出力例

n = 6 とした場合の出力例

[
 [1, 2], [1, 3], [1, 4], [1, 5], [1, 6],
 [2, 3], [2, 4], [2, 5], [2, 6],
 [3, 4], [3, 5], [3, 6],
 [4, 5], [4, 6],
 [5, 6]
]

combinationメソッドとは?

今回のロジックは、combinationメソッドを使うことで簡単に作れます。

サイズ n の組み合わせをすべて生成し、それを引数としてブロックを実行します。

引用: Ruby 3.2 リファレンスマニュアル

完成コード

n = 6
p (1..n).to_a.combination(2).to_a

コードの解説

  • このコードは、1からnまでの数値を組み合わせて、それぞれ2つずつの組み合わせを全て作るもの。

  • (1..n).to_aで1からnまでの数値を配列化している。この例だとn=6なので、[1, 2, 3, 4, 5, 6]って配列が作られる。

次に、その配列に対してcombination(2)メソッドを使っている。combination(2)は、配列の要素から2つを選び出す全ての組み合わせを生成するメソッド。この場合だと、[1,2], [1,3], [1,4], [1,5], [1,6], [2,3] ・・・という具体的な組み合わせの配列が生成されることになる。

最後に、to_aメソッドで結果を配列として出力している。これにより、生成された全ての組み合わせが配列として出力されることになる。

参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0