どうも、ちょげ(@chogetarou)です。
配列(array)の中央値を取得する方法を紹介します。
方法

配列(array)の中央値を取得するには、sortメソッドとlengthメソッドを使います。
まず、配列(array)からsortメソッドでソートした配列、lengthメソッドで配列の要素数を取得します。
def median(array)
#配列の要素数
count = array.length
#ソートした配列
sorted = array.sort
end
要素数が奇数の場合は、要素数を2で割ったインデックスの値を返します。
要素数が偶数の場合は、まず、要素数を「-1」して2で割ったインデックスの値と要素数を2で割ったインデックスの値を足します。
その足した値を2で割った値を返します。
def median(array)
count = array.length
sorted = array.sort
#奇数の場合
if count % 2 != 0
return sorted[count / 2]
end
#偶数の場合
(sorted[(count - 1) / 2] + sorted[count / 2]) / 2.0;
end
上記の処理で、配列(array)の中央値を取得できます。
使用例
def median(array)
count = array.length
sorted = array.sort
#奇数の場合
if count % 2 != 0
return sorted[count / 2]
end
#偶数の場合
(sorted[(count - 1) / 2] + sorted[count / 2]) / 2.0;
end
numbers = [2, 10, 37, 29, 5, 1, 19]
puts median(numbers)
出力:
10
コメント