64 lines
1.3 KiB
Java
64 lines
1.3 KiB
Java
package ecoparasite.nettoyage;
|
|
|
|
import ecoparasite.poisson.Poisson;
|
|
|
|
import java.util.HashSet;
|
|
|
|
public class Nettoyage {
|
|
|
|
/**
|
|
*
|
|
* @param tablePoisson
|
|
* @return
|
|
*/
|
|
public static HashSet<Poisson> nettoiePoisson(HashSet<Poisson> tablePoisson){
|
|
|
|
double mean = mean(tablePoisson); //Moyenne
|
|
double ecart = ecartType(tablePoisson); // Ecart Type
|
|
|
|
double z = 0;
|
|
|
|
for (Poisson p : tablePoisson) {
|
|
z = ( p.getInfestation() - mean ) / ecart;
|
|
|
|
if ( z >= 3 ) {
|
|
p.setInfestation(mean);
|
|
}
|
|
}
|
|
|
|
return tablePoisson;
|
|
}
|
|
|
|
private static double mean(HashSet<Poisson> tablePoisson){
|
|
|
|
double mean = 0.0;
|
|
|
|
for (Poisson p : tablePoisson){
|
|
mean += p.getInfestation();
|
|
}
|
|
|
|
return mean / tablePoisson.size();
|
|
}
|
|
|
|
private static double variance(HashSet<Poisson> tablePoisson){
|
|
|
|
double vari = 0.0;
|
|
double mean = mean(tablePoisson);
|
|
|
|
for (Poisson p : tablePoisson) {
|
|
vari += Math.pow( (p.getInfestation() - mean), 2);
|
|
}
|
|
|
|
return vari / tablePoisson.size();
|
|
}
|
|
|
|
private static double ecartType(HashSet<Poisson> tablePoisson){
|
|
|
|
double vari = variance(tablePoisson);
|
|
|
|
return Math.sqrt(vari);
|
|
}
|
|
|
|
|
|
}
|