Je ne vais pas te donner une réponse toute faite, je vais essayer de te mettre sur la voie pour que tu comprennes.
Quelle est la différence entre getListNumbers et listNumbers? (je vais supposer que ce ne sont pas les mêmes listes).
A quoi te sert cette ligne?
1 2
| for (int i = 0; i < getListNumbers.size(); i++) {
} |
1 2 3 4
| for (int i=0; i < getListNumbers.size(); i++) {
moyenne += i / listNumbers.size();
}
moyenne /= listNumbers.size(); |
Une moyenne non pondérée se calcule de la manière suivante :
1 2
| M=(x1+x2+x3+...+xn)/n
avec n la taille de ta liste et x(1 à n) une valeur de cette liste. |
Or toi tu fais :
1 2 3
| M=[(0/n)+(1/n)+(2/n)+...+(m/n)]/n
avec m la taille de getListNumbers et n la taille de listNumbers => 2 listes différentes.
0 à m : ton indice de parcours. |
Tu confonds indice de parcours et la valeur se trouvant à cet indice. i != getListNumbers.get(i)
D'après mes souvenirs, dans ton cas, l'écart type se calcule de la manière suivante :
1 2
| racine_carrée[ [(x1-M)²+(x2-M)²+...+(xn-M)²]/n ]
avec M la moyenne, n la taille de ta liste et x(1 à n) une valeur de cette liste. |
Je pense que tu voulais accéder à une valeur de getListNumbers. Dans ce cas, la syntaxe n'est pas bonne.
Il suffit de faire : getListNumbers.get(i)
Ton tableau diff est déclaré mais n'est défini nul part, il est vide.
Il aurait fallu queque chose du genre
double[] diff = new double[10]
D'ailleurs, pourquoi tu utilises un tableau pour stocker la différence? une simple variable aurait suffi.
ecartType = sqrt(ecart_type / 100);
pourquoi /100? ce serait plutôt /getListNumbers.size().
Avec ces quelques éléments, j'espère t'avoir aidé.
Partager