本記事の内容
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]
の出力の正体として見ます。
終わりに
もし出題されたときにこの記事を思い出そうと思います😅