Median, modus en afwijking toegevoegd

This commit is contained in:
jancoow
2014-10-19 14:05:15 +02:00
parent d7375205ee
commit 00bfee6d61
+48 -1
View File
@@ -1,4 +1,6 @@
import java.util.ArrayList;
package weerstation1;
import java.util.ArrayList;
import java.util.Collections;
public class StatisticsCalculator {
@@ -39,6 +41,51 @@ public class StatisticsCalculator {
return avg;
}
public static double median(ArrayList<Double> array){
Collections.sort(array); //sort the array
double median = 0;
int middle = array.size()/2; //calculate the middle of the array
if (array.size()%2 == 1) { //check if the array is even or uneven
median = array.get(middle);
} else {
median = (array.get(middle-1) + array.get(middle+1)) / 2;
}
return median;
}
public static double modus(ArrayList<Double> array){
double maxValue = 0;
int maxCount = 0;
for (int i = 0; i < array.size(); ++i){ //cycle through every number in the array
int count = 0;
for (int j = 0; j < array.size(); ++j) {
if (array.get(j) == array.get(i)){
++count;
}
}
if (count > maxCount) { //if the count is bigger then the max count, it will be the temporary modus
maxCount = count;
maxValue = array.get(i);
}
}
return maxValue;
}
public static double afwijking(ArrayList<Double> array){
double mediaan = StatisticsCalculator.median(array);
double afwijking = 0;
for(double m :array){
afwijking += (mediaan-m)*(mediaan-m);
}
afwijking /= array.size();
afwijking = Math.sqrt(afwijking);
return afwijking;
}
public static Periode langsteDroogstePeriode(ArrayList<Double> array)
{
Periode periode = new Periode();