23 lines
386 B
Text
23 lines
386 B
Text
|
|
class StdDevAccumulator(n=0, sum=0, sumofsquares=0) {
|
|||
|
|
method <<(num) {
|
|||
|
|
n += 1
|
|||
|
|
sum += num
|
|||
|
|
sumofsquares += num**2
|
|||
|
|
self
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
method stddev {
|
|||
|
|
sqrt(sumofsquares/n - pow(sum/n, 2))
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
method to_s {
|
|||
|
|
self.stddev.to_s
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var i = 0
|
|||
|
|
var sd = StdDevAccumulator()
|
|||
|
|
[2,4,4,4,5,5,7,9].each {|n|
|
|||
|
|
say "adding #{n}: stddev of #{i+=1} samples is #{sd << n}"
|
|||
|
|
}
|