Jump to content

Averages/Simple moving average: Difference between revisions

→‎{{header|Java}}: DIE, REPETITION!
(crosslink to the similar Standard Deviation task)
(→‎{{header|Java}}: DIE, REPETITION!)
Line 265:
<lang java5>import java.util.LinkedList;
public class MovingAverage {
LinkedList<Double> window ;
private int size;
public MovingAverage(int size) {
window = new LinkedList<Double>();
this.size = size;
}
public static void main(String[] args) {
double[] testData = {1,2,3,4,5,5,4,3,2,1};
MovingAverage ma = new MovingAverage(3);
for (double x : testData) {
ma.newNum(1);System.out.println(ma.getAvg());
ma.newNum(2);System.out.println(ma.getAvg()x);
ma.newNum(3); System.out.println(ma.getAvg());
}
ma.newNum(4);System.out.println(ma.getAvg());
ma.newNum(5);System.out.println(ma.getAvg());
ma.newNum(5);System.out.println(ma.getAvg());
ma.newNum(4);System.out.println(ma.getAvg());
ma.newNum(3);System.out.println(ma.getAvg());
ma.newNum(2);System.out.println(ma.getAvg());
ma.newNum(1);System.out.println(ma.getAvg());
 
System.out.println();
 
ma = new MovingAverage(5);
for (double x : testData) {
ma.newNum(1);System.out.println(ma.getAvg());
ma.newNum(2);System.out.println(ma.getAvg()x);
ma.newNum(3); System.out.println(ma.getAvg());
}
ma.newNum(4);System.out.println(ma.getAvg());
ma.newNum(5);System.out.println(ma.getAvg());
ma.newNum(5);System.out.println(ma.getAvg());
ma.newNum(4);System.out.println(ma.getAvg());
ma.newNum(3);System.out.println(ma.getAvg());
ma.newNum(2);System.out.println(ma.getAvg());
ma.newNum(1);System.out.println(ma.getAvg());
}
 
public void newNum(double num) {
window.add(num);
if (window.size() > size) {
window.removeFirst();
}
}
 
public double getAvg() {
if (window.isEmpty()) return 0;
double ret = 0;
double sum = 0;
for (double num : window) {
sum += num;
}
Line 338 ⟶ 328:
3.8
3.0</pre>
 
=={{header|Perl}}==
<lang perl>sub sma ($)
Cookies help us deliver our services. By using our services, you agree to our use of cookies.