算術平均

概要

文系プログラマが数式アレルギーを治す為に、中学〜高校レベルの知識でもわかる数式を、プログラムのコードに直す作業を黙々と続ける企画。

ソースコードはJuliaを利用。誰にでも読みやすいと勝手に思っているJuliaを利用。

今回のテーマは算術平均。相加平均。mean。Hey, equations. you are so mean.

@CretedDate 2014/12/22
@Versions Julia0.3.3

数式

式はWikipediaの算術平均とかを参考にした。

http://ja.wikipedia.org/wiki/%E7%AE%97%E8%A1%93%E5%B9%B3%E5%9D%87

こんな感じ。

μ = 1 n i = 1 n x i

総和平均という小学5年生でやる計算でも、数式アレルギーを発症させるに十分だと思うんだ。

# 自分用メモ
$ \mu = \frac{1}{n} \sum\limits_{i=1}^n x_i $

数式の解説

μ は ミューと読む。平均値を表現する時に使われることが多い。他にもいろいろ使われるみたいだけど。

Σ は大文字のシグマ。小文字のシグマはσ。Σは総和を表す。上の例だと、iは1〜nまでの数列で、Σの部分はx(1)〜x(i)までの総和を意味することになる。

当該箇所だけをコードに直すと、こんな感じ。

x = [3.0, 2.5, 1.4, 6.2, 3.3, 2.1, 5.0]
x_sum = 0
for i = x
  x_sum += i
end

x_sum
  #=> 23.500000000000004

ああ、浮動小数点のアレで結果が。まあ、いいや。

もっと簡潔に言ってしまうと、こういうこと。

x = [3.0, 2.5, 1.4, 6.2, 3.3, 2.1, 5.0]
sum( x )
  #=> 23.500000000000004

コードに直す

ということで、これをJuliaのコードに直すと、下記のようになる。

x = [3.0, 2.5, 1.4, 6.2, 3.3, 2.1, 5.0]
x_sum = 0
for i = x
  x_sum += i
end

n = length(x)
x_sum / n
  #=> 3.3571428571428577

もっとわかりやすく書けば、こうなる。

sum( x ) / length( x )
  #=> 3.3571428571428577

つまりはこうなる。

mean( x )
  #=> 3.3571428571428577