Averages/Simple moving average: Difference between revisions
Content added Content deleted
(crosslink to the similar Standard Deviation task) |
(→{{header|Java}}: DIE, REPETITION!) |
||
Line 265: | Line 265: | ||
<lang java5>import java.util.LinkedList; |
<lang java5>import java.util.LinkedList; |
||
public class MovingAverage { |
public class MovingAverage { |
||
LinkedList<Double> window |
LinkedList<Double> window; |
||
private int size; |
private int size; |
||
public MovingAverage(int size){ |
public MovingAverage(int size) { |
||
window = new LinkedList<Double>(); |
window = new LinkedList<Double>(); |
||
this.size = size; |
this.size = size; |
||
} |
} |
||
public static void main(String[] args){ |
public static void main(String[] args) { |
||
double[] testData = {1,2,3,4,5,5,4,3,2,1}; |
|||
MovingAverage ma = new MovingAverage(3); |
MovingAverage ma = new MovingAverage(3); |
||
for (double x : testData) { |
|||
ma.newNum(1);System.out.println(ma.getAvg()); |
|||
ma.newNum( |
ma.newNum(x); |
||
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(); |
System.out.println(); |
||
ma = new MovingAverage(5); |
ma = new MovingAverage(5); |
||
for (double x : testData) { |
|||
ma.newNum(1);System.out.println(ma.getAvg()); |
|||
ma.newNum( |
ma.newNum(x); |
||
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){ |
public void newNum(double num) { |
||
window.add(num); |
window.add(num); |
||
if(window.size()>size){ |
if (window.size() > size) { |
||
window.removeFirst(); |
window.removeFirst(); |
||
} |
} |
||
} |
} |
||
public double getAvg(){ |
public double getAvg() { |
||
if(window.isEmpty()) return 0; |
if (window.isEmpty()) return 0; |
||
double ret = 0; |
double ret = 0; |
||
double sum = 0; |
double sum = 0; |
||
for(double num : window){ |
for (double num : window) { |
||
sum += num; |
sum += num; |
||
} |
} |
||
Line 338: | Line 328: | ||
3.8 |
3.8 |
||
3.0</pre> |
3.0</pre> |
||
=={{header|Perl}}== |
=={{header|Perl}}== |
||
<lang perl>sub sma ($) |
<lang perl>sub sma ($) |