D'accord, j'ai utilisé ces deux algorithmes en concurrence :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
/*(1)*/
double mean_ponderee(unsigned long * tab_in, unsigned long SIZE)
{
unsigned long i;
double current_mean=tab_in[0];
for(i=0;i<SIZE-1;i++)
{
current_mean = (current_mean * ((i+1.0)/(i+2.0))) + tab_in[i+1]*(1.0/(i+2.0));
}
return current_mean;
}
/*(2)*/
double mean_classic(unsigned long * tab_in, unsigned long SIZE)
{
unsigned long i;
double mean=0;
for(i=0;i<SIZE;i++)
{
mean=mean+tab_in[i];
}
mean = mean/SIZE;
return mean;
} |
Et j'obtiens de part et d'autre le même résultat.
22.498000(1), 22.498000(2)
Ça marche, voilà, le premier a tout de même l'avantage de prévenir un dépassement de capacité de type.
Merci beaucoup.
Partager