文系プログラマが数式アレルギーを治す為に、中学〜高校レベルの知識でもわかる数式を、プログラムのコードに直す作業を黙々と続ける企画。
ソースコードはJuliaを利用。誰にでも読みやすいと勝手に思っているJuliaを利用。
今回のテーマは算術平均。相加平均。mean。Hey, equations. you are so mean.
式はWikipediaの算術平均とかを参考にした。
http://ja.wikipedia.org/wiki/%E7%AE%97%E8%A1%93%E5%B9%B3%E5%9D%87
こんな感じ。
総和平均という小学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