bonjour tout le monde, je bloque un peu dans un exercice, bon le voilà:
1/ on m'a donné une fonction:
def mystere(n):
***s=0
***for k in range (1,n+1):
*****s=s+factorielle(k)
***return s
désolé pour les * c'est pour garder la marge
(la fonction factorielle est déjà définit elle calcule le factorielle du nombre k)
2/ on m'a demandé quelle est la valeur que renvoie mystere(4):
après calcul j'ai trouvé 33
3/ puis de déterminer le nbr de multiplication qu'effectue cette fonction:
j'ai trouvé que c'est [n(n+1)/2]-n (je l'ai trouvé en se basant sue le cas de mystere(4) je suis pas sur à 100% mais je crois qu'on peu le démontrer par réccurence sur n)
4/ on me demande d'améliorer le script de la fonction mystere(n) pour obtenir une complexité linéaire, là je bloque je sais bien que je dois réduire le nombre de multiplication qu'effectue cette fonction mais j'arrive pas
-----