History of Idiom 203 > diff from v8 to v9
Edit summary for version 9 by Francob411:
[Elixir] clean up
[Elixir] clean up
↷
Version 8
2019-11-02, 17:22:38
Version 9
2019-11-02, 17:24:53
Idiom #203 Calculate mean and standarddeviation
Calculate the mean m and the standard deviation s of the list of floating point values data.
Idiom #203 Calculate mean and standarddeviation
Calculate the mean m and the standard deviation s of the list of floating point values data.
Extra Keywords
avg average varianceExtra Keywords
avg average varianceCode
defmodule SD do
import Enum, only: [map: 2, sum: 1]
import :math, only: [sqrt: 1, pow: 2]
def standard_deviation(data) do
data
|> mean
|> variance(data)
|> mean
|> sqrt
end
def mean(data) do
sum(data) / length(data)
end
def variance(mean, data) do
map(data, &pow(&1 - mean, 2))
end
end
Code
data = [1,2,3,4]
m = SD.mean(data)
# => 2.5
sd = SD.standard_deviation(data)
# => 1.118033988749895
defmodule SD do
import Enum, only: [map: 2, sum: 1]
import :math, only: [sqrt: 1, pow: 2]
def standard_deviation(data) do
data
|> mean
|> variance(data)
|> mean
|> sqrt
end
def mean(data) do
sum(data) / length(data)
end
def variance(mean, data) do
map(data, &pow(&1 - mean, 2))
end
end
Comments bubble
# SD.standard_deviation(data)
# => 1.118033988749895
Comments bubble