1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ruby】Rubyのproductメソッドの処理について理解したい

Posted at

本記事の内容

RubyのメソッドArray#productについて

Ruby リファレンスマニュアル
https://docs.ruby-lang.org/ja/latest/method/Array/i/product.html

俺にはわからない...ずっとそうだ...

Ruby Silverを受けようと思っているのですが、早速下記となるのがわからなかったので自分の理解を進めるのを含めて投稿します。

arr = [1,2].product([3,4])
p arr
=> [[1, 3], [1, 4], [2, 3], [2, 4]]

Rexで対策少しずつがんばろうと思ってます💪

productメソッドについて

Ruby リファレンスマニュアルに記載のproductメソッドについての説明は次のとおり。

レシーバの配列と引数で与えられた配列(複数可)のそれぞれから要素を1 個ずつとって配列とし,それらのすべての配列を要素とする配列を返します。

返される配列の長さは,レシーバと引数で与えられた配列の長さのすべての積になります。

...なんのことやら?

要素の取り出し方を図解してみる

下記のページで要素を取り出す様子を図解されてました。

直積だ

個人的にさらにわかりやすかったのは
productメソッドは集合の直積(デカルト積)を作るものと見るものです。
(だから積の「product」なのかな?と思います)

wikipediaの直積の説明図と同様に考えてみます

  • 配列[1,2][3,4]を行列の行、列に見立てる
  • Wikipediaに載っている説明図のように[1,2]の要素、[3,4]の要素を行ごと、列ごとにマスの中の要素に当てはめる
  • マスの中の配列を要素とする配列が
    [1,2].product[3,4]の出力の正体として見ます。
    image.png

終わりに

もし出題されたときにこの記事を思い出そうと思います😅

1
0
1

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?