2026-04-01 15:05:16 +02:00
|
|
|
package ecoparasite.nettoyage;
|
|
|
|
|
|
|
|
|
|
import ecoparasite.poisson.Poisson;
|
|
|
|
|
|
|
|
|
|
import java.util.HashSet;
|
|
|
|
|
|
|
|
|
|
public class Nettoyage {
|
|
|
|
|
|
|
|
|
|
/**
|
2026-04-01 16:20:41 +02:00
|
|
|
*
|
2026-04-01 15:05:16 +02:00
|
|
|
* @param tablePoisson
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
2026-04-01 16:20:41 +02:00
|
|
|
public static HashSet<Poisson> nettoiePoissonMean(HashSet<Poisson> tablePoisson){
|
2026-04-01 15:05:16 +02:00
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
Double mean = mean(tablePoisson); //Moyenne
|
|
|
|
|
Double ecart = ecartType(tablePoisson); // Ecart Type
|
2026-04-01 15:05:16 +02:00
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
Double z = 0.0;
|
2026-04-01 15:05:16 +02:00
|
|
|
|
|
|
|
|
for (Poisson p : tablePoisson) {
|
|
|
|
|
z = ( p.getInfestation() - mean ) / ecart;
|
|
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
if ( z >= 2.5 ) {
|
2026-04-01 15:05:16 +02:00
|
|
|
p.setInfestation(mean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return tablePoisson;
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
private static Double mean(HashSet<Poisson> tablePoisson){
|
2026-04-01 15:05:16 +02:00
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
Double mean = 0.0;
|
2026-04-01 15:05:16 +02:00
|
|
|
|
|
|
|
|
for (Poisson p : tablePoisson){
|
|
|
|
|
mean += p.getInfestation();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return mean / tablePoisson.size();
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
private static Double variance(HashSet<Poisson> tablePoisson){
|
2026-04-01 15:05:16 +02:00
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
Double vari = 0.0;
|
|
|
|
|
Double mean = mean(tablePoisson);
|
2026-04-01 15:05:16 +02:00
|
|
|
|
|
|
|
|
for (Poisson p : tablePoisson) {
|
|
|
|
|
vari += Math.pow( (p.getInfestation() - mean), 2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return vari / tablePoisson.size();
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
private static Double ecartType(HashSet<Poisson> tablePoisson){
|
2026-04-01 15:05:16 +02:00
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
Double vari = variance(tablePoisson);
|
2026-04-01 15:05:16 +02:00
|
|
|
|
|
|
|
|
return Math.sqrt(vari);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|