[AINSI-C]CALCUL D'UNE RACINE CARRÉE PAR ALGORITHME D'HÉRON
mmuller57
Messages postés174Date d'inscriptionmardi 10 avril 2001StatutMembreDernière intervention30 juillet 2003
-
8 juil. 2002 à 02:48
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
16 mars 2006 à 17:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 mars 2006 à 17:24
La récursivité n'est quasi jamais la bienvenue ni pour la stack qui risque de sauter ni pour les perfs, c'est généralement le signe qu'on n'a pas réussi à s'en débarrasser.
marik7335
Messages postés115Date d'inscriptionsamedi 27 décembre 2003StatutMembreDernière intervention11 mai 2009 16 janv. 2005 à 23:43
Salut à tous,
J'ai réaliser cet algo dans mes débuts en programmation c++ et c'est vrai que l'astuce est bien trouvée.
Par contre, la récursivité serait la bienvenue.
l'algorithme d'héron consiste, en effet, à effectuer des calculs tant que la precision attendue n'est pas atteinte.
au début X0 = A
puis X1 = 0.5 * ( A/X0 + X0) ..... etc
juqu'à ce que Xn²- A < precision
Pour plus de simplicité on aurait pu écire la fonction de cette manière :
il faudra déclarer cette fonction comme ceci
Si A=7
cout << RacineCarree(7,7,0.0001); par exemple
Voilà
cs_kjus
Messages postés269Date d'inscriptionmercredi 24 avril 2002StatutMembreDernière intervention 9 juin 2003 8 juil. 2002 à 14:21
effectivement la convergence est plus rapide lorsque "an" est proche de la racine carré. Mais ca marche avec n'importe quelle valeur. La convergence est très rapide.
mmuller57
Messages postés174Date d'inscriptionmardi 10 avril 2001StatutMembreDernière intervention30 juillet 20031 8 juil. 2002 à 02:48
Pas mal mais il ne faut pas oublier que an doit être une estimation (valeur approchée) de la racine carrée ! non ?
16 mars 2006 à 17:24
16 janv. 2005 à 23:43
J'ai réaliser cet algo dans mes débuts en programmation c++ et c'est vrai que l'astuce est bien trouvée.
Par contre, la récursivité serait la bienvenue.
l'algorithme d'héron consiste, en effet, à effectuer des calculs tant que la precision attendue n'est pas atteinte.
au début X0 = A
puis X1 = 0.5 * ( A/X0 + X0) ..... etc
juqu'à ce que Xn²- A < precision
Pour plus de simplicité on aurait pu écire la fonction de cette manière :
double RacineCarree(int A, double Xn, double precision)
{
if( (Xn*Xn) - A ) > precision
return RacineCarree(A, 0.5 * ( (A/Xn) + Xn ), precision);
else return Xn;
};
il faudra déclarer cette fonction comme ceci
Si A=7
cout << RacineCarree(7,7,0.0001); par exemple
Voilà
8 juil. 2002 à 14:21
8 juil. 2002 à 02:48