我怎样才能在 Ruby 中做标准偏差? [英] How can I do standard deviation in Ruby?
本文介绍了我怎样才能在 Ruby 中做标准偏差?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有几个具有给定属性的记录,我想找到标准差.
I have several records with a given attribute, and I want to find the standard deviation.
我该怎么做?
推荐答案
module Enumerable
def sum
self.inject(0){|accum, i| accum + i }
end
def mean
self.sum/self.length.to_f
end
def sample_variance
m = self.mean
sum = self.inject(0){|accum, i| accum +(i-m)**2 }
sum/(self.length - 1).to_f
end
def standard_deviation
Math.sqrt(self.sample_variance)
end
end
测试:
a = [ 20, 23, 23, 24, 25, 22, 12, 21, 29 ]
a.standard_deviation
# => 4.594682917363407
01/17/2012:
修复sample_variance";感谢戴夫·萨格
这篇关于我怎样才能在 Ruby 中做标准偏差?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文