Algorithme récursif
mido123
-
mido123 -
mido123 -
Bonjour, svp je cherche un algorithme récursif d'une fonction qui permet de calculer la valeur d'un polynome d'ordre n, les coiffécients sont stocker dans un tableau( la dim du tableau et x seront des donnés). merci d'avance
3 réponses
-
en effet le polynome s'écrit de la façon suivante:
a0+x(a1+x(a2+x(a3+x(...........+an.x)......))))-
Bonsoir,
Cette écriture minimise le nombre d'opérations.
C'est à elle que je pensais quand je disais que l'allgo précédent n'était pas optimisé.
Le souci (je trouve) avec cette écriture c'est qu'il faut inverser les coefficients.
Fonction P(n, N, x) 'N=degré du polynôme
si n>0 alors
P= coeff(N-n) + P(n-1, N, x)*x
sinon
P=coeff(N)
fin si
fin Fonction
J'ai intégré le N dans la fonction pour que l'inversion des coefficients soit plus "criante"
Comme je n'ai pas passé les coeff en argument, on pourrait se passer du N dans la fonction, du moins pour l'algorithme.
A+
PS : je n'ai pas saisi où était le problème avec le x^n de l'algo précédent- merci bien, en fait j'ai trouvé à peu près la même soltuion en intégran une autre variable;
solution en pascal:
--------------------------------------------------------------------
function calcul(i,n:integer;x:real;c:tableau):real;
begin
if n=i then
calcul:=c[i]
else
calcul:=calcul(i+1,n,x,c)*x+c[i];
end;
----------------------------------------------------------------
avec un appel initiale de valeur 0 pour i
le problème de x^n c'est qu'il faut une fonction
-
-
Bonsoir,
fonction P(n,x)
Si n>0 alors P=coeff(n)*x^n+P(n-1, x) sinon P=coeff(0)
fin fonction
c'est pas l'algo le plus économique en nombre d'opérations mais ça doit le faire
cdlt -