all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
25
Task/Standard-deviation/Ruby/standard-deviation-1.rb
Normal file
25
Task/Standard-deviation/Ruby/standard-deviation-1.rb
Normal file
|
|
@ -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}" }
|
||||
12
Task/Standard-deviation/Ruby/standard-deviation-2.rb
Normal file
12
Task/Standard-deviation/Ruby/standard-deviation-2.rb
Normal file
|
|
@ -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