[解決済み】Rubyの配列から平均を作成する方法は?
2022-04-08 17:25:50
質問
配列から平均値を求めるには?
配列があれば
[0,4,8,2,5,0,2,6]
平均すると3.375になります。
解答方法は?
これを試してみてください。
arr = [5, 6, 7, 8]
arr.inject{ |sum, el| sum + el }.to_f / arr.size
=> 6.5
注意
.to_f
これは、整数の除算による問題を避けるために必要なものです。これも可能です。
arr = [5, 6, 7, 8]
arr.inject(0.0) { |sum, el| sum + el } / arr.size
=> 6.5
の一部として定義することができます。
Array
しかし、整数の除算を避ける必要があり、そうしないと結果がおかしくなります。また、これは一般的にすべての可能な要素タイプに適用できるわけではありません(明らかに、平均は平均化できるものに対してのみ意味を持ちます)。しかし、もしそのような方法を取りたいのであれば、これを使ってください。
class Array
def sum
inject(0.0) { |result, el| result + el }
end
def mean
sum / size
end
end
まだご覧になっていない方は
inject
しかし、これは見た目ほど不思議なものではありません。これは各要素に対して反復処理を行い、アキュムレータの値を適用します。そして、アキュムレータは次の要素に渡されます。この場合、アキュムレータは単純に整数で、前の要素の合計を反映します。
編集する コメンテーターのDave Rayが素敵な改善策を提案してくれました。
編集する。
コメントしたGlenn Jackman氏の提案では
arr.inject(:+).to_f
も良いのですが、何が起こっているのか分からないと、ちょっと賢すぎるかもしれません。この
:+
はシンボルです。injectに渡されると、シンボルで名付けられたメソッド(この場合は加算演算)を、アキュムレータの値に対して各要素に適用します。
関連
-
[解決済み】Rubyで数値の配列の合計を出すには?
-
[解決済み] "render :nothing => true" は空のプレーンテキストファイルを返すのですか?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Rubyで配列から重複する要素を取り除く
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】修正方法:エラー:'<ファイル名>'にチェックアウトされたコミットがない fatal: コマンドプロンプトで "git add ." を入力するとファイルの追加に失敗する
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] Ruby on Railsのランナー
-
[解決済み] Ruby on Railsでsimple_formを使うさまざまな方法|何が違うの?
-
[解決済み] rails erb フォームヘルパー options_for_select :selected
-
[解決済み] Herokuの問題 : あなたが探しているページは存在しません。
-
[解決済み] bundle install --without production は何をするのですか?
-
[解決済み] レイル 4 radio_button_tag default not selected
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".