RosettaCodeData/Task/Cumulative-standard-deviation/Sidef/cumulative-standard-deviation-1.sidef

23 lines
386 B
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
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}"
}