Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,25 @@
|
|||
class StdDevAccumulator
|
||||
def initialize
|
||||
@n, @sum, @sumofsquares = 0, 0.0, 0.0
|
||||
end
|
||||
|
||||
def <<(num)
|
||||
# return self to make this possible: sd << 1 << 2 << 3 # => 0.816496580927726
|
||||
@n += 1
|
||||
@sum += num
|
||||
@sumofsquares += num**2
|
||||
self
|
||||
end
|
||||
|
||||
def stddev
|
||||
Math.sqrt( (@sumofsquares / @n) - (@sum / @n)**2 )
|
||||
end
|
||||
|
||||
def to_s
|
||||
stddev.to_s
|
||||
end
|
||||
end
|
||||
|
||||
sd = StdDevAccumulator.new
|
||||
i = 0
|
||||
[2,4,4,4,5,5,7,9].each {|n| puts "adding #{n}: stddev of #{i+=1} samples is #{sd << n}" }
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
def sdaccum
|
||||
n, sum, sum2 = 0, 0.0, 0.0
|
||||
lambda do |num|
|
||||
n += 1
|
||||
sum += num
|
||||
sum2 += num**2
|
||||
Math.sqrt( (sum2 / n) - (sum / n)**2 )
|
||||
end
|
||||
end
|
||||
|
||||
sd = sdaccum
|
||||
[2,4,4,4,5,5,7,9].each {|n| print sd.call(n), ", "}
|
||||
Loading…
Add table
Add a link
Reference in a new issue