Skip to content

Instantly share code, notes, and snippets.

@oieioi
Last active August 2, 2017 09:29
Show Gist options
  • Save oieioi/167740c80e7113b320e22ea91dc7bdfc to your computer and use it in GitHub Desktop.
Save oieioi/167740c80e7113b320e22ea91dc7bdfc to your computer and use it in GitHub Desktop.
class Array
# 数列の合計を返す
def sum
self.reduce(0){|memo,v|
memo + v.to_f
}
end
# 数列の平均を返す
def mean
return nil if self.size == 0
self.sum / self.size
end
# 数列の偏差の配列を返す
def deviations
me = self.mean
return nil if me.nil?
self.map {|v|
v.to_f - me
}
end
# 数列の分散を返す
def variance
devs = self.deviations
return nil if devs.nil? or devs.size == 0
dev_sum = devs.reduce(0) {|memo, v| memo + (v**2)}
dev_sum / devs.size
end
# 数列の標準偏差を返す
def standard_deviation
variance = self.variance
return nil if variance.nil?
Math.sqrt variance
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment