[Ruby]配列(array)の中央値を取得するには?

Ruby

どうも、ちょげ(@chogetarou)です。

配列(array)の中央値を取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(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)の中央値を取得できます。

上記の流れを説明すると、次のようになります。

  1. 配列をソートする
  2. 配列の要素数が偶数かどうかを確認
  3. 要素数が奇数ならば、中央の値を返す
  4. 要素数が偶数ならば、中央の左右の値を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

numbers = [2, 10, 37, 29, 5, 1, 19]

puts median(numbers)
出力:
10

コメント

タイトルとURLをコピーしました