※コメント欄の通り scivola様 よりご指摘/アドバイスを頂いたため、コードを修正させていただきます(integerクラスを1つ、floatクラスを2つで新たに記載させていただきました)^^
正確な記事をかけるよう務めておりますが、駆け出し故に未熟な部分もあるかと思います。差し支えないようでしたら、コメント等頂けると幸いです。
こんにちは。
Rubyの試験の復習中、配列内の要素の平均値を算出する必要がありました。
色々調べたため、こちらに備忘のためのメモを残させていただきます。
よろしければ参考にしていただければ幸いです。
その他、参照させていただいたサイトのリンクも添付しておきます。
感謝です。
numbers = [1, 2, 3, 4, 5]
# integer
puts average = numbers.inject(:+) / numbers.length #=>3
# float ( Numeric#fdiv )
puts total.fdiv(numbers.length) #=>3.0
# float ( Numeric#fdiv + Array#sum(Ruby2.4以降) )
puts numbers.sum.fdiv(numbers.length) #=>3.0
※「numbers.length」は要素の個数の合計で、ここでは「5」。
※以下の「each」で合計を算出しておりましたが「numbers.inject(:+)」に置き換えました。意味を理解するため、以下にメモとして残させていただきます。
※「total = total + number」は「total += number」でもよい。
total = 0
numbers.each do |number|
total = total + number
end
以上です。
他にも書き方はあるみたいです。
ここでは、私がイメージし易い書き方で記載させていただきました。
参考にさせていただいたサイトも以下に添付させていただきますが、
色々と調べてみてください^^