12345678910111213141516171819202122232425 |
- #!/usr/bin/ruby
- func simple_moving_average(period) {
- var list = [];
- var sum = 0;
- func (number) {
- list.append(number);
- sum += number;
- list.len > period && (
- sum -= list.shift;
- );
- return (sum / list.length);
- }
- }
- var ma3 = simple_moving_average(3);
- var ma5 = simple_moving_average(5);
- for num in (1..^6, 6^..1) {
- printf("Next number = %d, SMA_3 = %.3f, SMA_5 = %.1f\n",
- num, ma3.call(num), ma5.call(num));
- }
|