15 lines
394 B
Groovy
15 lines
394 B
Groovy
def simple_moving_average = { size ->
|
|
def nums = []
|
|
double total = 0.0
|
|
return { newElement ->
|
|
nums += newElement
|
|
oldestElement = nums.size() > size ? nums.remove(0) : 0
|
|
total += newElement - oldestElement
|
|
total / nums.size()
|
|
}
|
|
}
|
|
|
|
ma5 = simple_moving_average(5)
|
|
|
|
(1..5).each{ printf( "%1.1f ", ma5(it)) }
|
|
(5..1).each{ printf( "%1.1f ", ma5(it)) }
|