Bonjour,
Voila! notre professeur nous a demandé d'écrire une procédure ou fonction somme(n,p) récursive permettant de calculer la somme des premières puissances i.e
voici la somme:
j'ai cherché pendant toute la journée aboutissant à rien.
je serai heureux si quelqu'un pouvait m'aider merci.
salut
fonction somme(n,p : entier);
s = [(n + 1)p+1 - 1 - S(p)]/(p + 1)
fin
fonction S(p : entier);
S = 0;
j = 0;
tant que j < p faire
S = S + C(j,p+1)somme(n,j)
fin;
fin;
début
entrée n,p;
afficher somme(n,p);
fin
en fait il y a une "double récursivité" mais cet algorithme devrait convenir
les fonctions somme et S sont récursives et "s'entremelent" mais les langages d'aujourd'hui permettent cela ....ce me semble-t-il ...
Bonjour,
écrire une procédure récursive consiste simplement à recopier la formule de récurrence.
Avec Maple:
somme:=proc(p)
local j:
if p=0 then n else ((n+1)^(p+1)-1-add(binomial(p+1,j)*somme(j),j=0..p-1))/(p+1) end if end:
n est une variable formelle
binomial désigne le coefficient binomial
il ne faut pas oublier l'initialisation: si p=0 alors le résultat est n.
On peut ensuite factoriser (avec factor) ou bien développer (avec expand).
exemple: factor(somme(3)); donne n^2(n + 1)^2/4
oui j'étais allé à l'essentiel sans détailler les conditions limites
oui n est une variable formelle si on veut
je pensais qu'il fallait donner une valeur numérique .... mais c'est vrai que n n'intervient pas : c'est comme une constante dans la procédure .... donc on veut !!!! (sans le "si") ...
en fait ton exemple est le carré de la somme des n premiers termes ....
que se passe-t-il pour d'autres p ?
Pour n=4:
factor(somme(4)); donne n (2 n + 1) (n + 1) (3 n^2 + 3 n - 1)/ 30
expand(somme(4)); donne 1/5 n^5 + 1/2 n^4 + 1/3 n^3 - 1/30 n
ok merci pour ta réponse carpediem et aussi jandri .
C'est ce que je pensais une double récursivité.
Bon je vais de suite tester chaque algoritmes mais en php.
merci et à toute.
On peut montrer que est un polynôme en
de degré
qui admet 0 et -1 comme racines.
De plus:
si est impair
alors 0 et -1 sont racines doubles.
si est pair
alors
est également racine.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :