データの数が偶数,奇数いずれの場合についてもメジアンを求めるプログラムを作りたい。 すでにそれぞれの場合について前2つの問題を解いているはずであるから, その処理を if 文で分岐させればよい。
まず,奇数個の数値データが昇順に配列に格納されていて,次のようになっているものとする。
11.2, 12.0, 16.2, 24.2, 28.6, 41.9, 71.7, 79.7, 81.4
このメジアンは 28.6 である。
また,偶数個の数値データが昇順に配列に格納されていて,次のようになっているものとする。
11.2, 12.0, 16.2, 24.2, 28.6, 41.9, 71.7, 79.7, 81.4, 90.5
このメジアンは 35.25 である。 データが奇数,偶数いずれであっても次のように出力させたい。 ここで xx.xx は適当な数値である。ただし必ずしも小数第2位は現れない。
メジアン = xx.xx
このようなプログラムを以下の方針で作りなさい。
・あらかじめ配列 ar にデータが格納される処理が, プログラムの最初で行われているものとする。 その部分については書く必要はない。
・ 配列の要素数とデータは毎回異なる。要素の数は奇数,偶数いずれもあり得る。
・メジアンの値を上の形で出力する。出力の最後には改行が入る。
ar = [46.0,46.5,54.6,58.3,70.0,71.1,75.7,78.3,81.9,81.9]
この上にある配列 ar の定義は自動的に追加されるので省略すること。
自分の回答
n = ar.size
if(n % 2 == 1) then
med = (n - 1) / 2
puts"メジアン = #{med}"
else
med = [(n / 2) - 1] + [n / 2]) / 2.0}
puts"メジアン = #{med}"
end
何が間違っているかわからないです。
回答お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/01/14 14:33