Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,18 @@
|
|||
def simple_moving_average(size)
|
||||
nums = []
|
||||
sum = 0.0
|
||||
lambda do |hello|
|
||||
nums << hello
|
||||
goodbye = nums.length > size ? nums.shift : 0
|
||||
sum += hello - goodbye
|
||||
sum / nums.length
|
||||
end
|
||||
end
|
||||
|
||||
ma3 = simple_moving_average(3)
|
||||
ma5 = simple_moving_average(5)
|
||||
|
||||
(1.upto(5).to_a + 5.downto(1).to_a).each do |num|
|
||||
printf "Next number = %d, SMA_3 = %.3f, SMA_5 = %.1f\n",
|
||||
num, ma3.call(num), ma5.call(num)
|
||||
end
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
class MovingAverager
|
||||
def initialize(size)
|
||||
@size = size
|
||||
@nums = []
|
||||
@sum = 0.0
|
||||
end
|
||||
def <<(hello)
|
||||
@nums << hello
|
||||
goodbye = @nums.length > @size ? @nums.shift : 0
|
||||
@sum += hello - goodbye
|
||||
self
|
||||
end
|
||||
def average
|
||||
@sum / @nums.length
|
||||
end
|
||||
alias to_f average
|
||||
def to_s
|
||||
average.to_s
|
||||
end
|
||||
end
|
||||
|
||||
ma3 = MovingAverager.new(3)
|
||||
ma5 = MovingAverager.new(5)
|
||||
|
||||
(1.upto(5).to_a + 5.downto(1).to_a).each do |num|
|
||||
printf "Next number = %d, SMA_3 = %.3f, SMA_5 = %.1f\n",
|
||||
num, ma3 << num, ma5 <<num
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue