Bonjour, je bloque depuis un certain temps sur un exercice de programmation python:
Soit la suite (Un) définie par U0=2 et Un=1.3U(n-1)-n+4 pour tout n>0 , écrire un programme qui affiche le terme de rang n, ce rang étant demandé et saisi en début de programme.
J'ai tenté d'exprimer U(n+1) en fonction de Un et j'ai trouvé U(n+1)=1.3Un-(n+1)+4
soit Un+1=1.3Un-n+3 .
J'ai alors essayé le programme suivant, qui n'affiche pas les bons résultats:
n=int(input("rang=?"))
u=2
for i in range(1,n+1):
u=1.3*u-n+3
print(u)
Je ne vois pas comment résoudre le problème, si quelqu'un peut m'aider m'aider, merci d'avance .
Bonjour
tu t'es compliqué la vie inutilement et donc tu te trompes
de plus faut pas confondre i (le rang de l'élément courant à calculer au fur et à mesure
et n (le dernier)
c'est directement Un=1.3U(n-1)-n+4
U1 = 1.3 U0 -1 + 4
dans la première exécution de la boucle i = 1 et u contient U0
donc avec directement la formule de l'énoncé c'est bon, on obtient bien U1
( à condition d'utiliser le rang de l'élément courant à calculer, qui est i et pas n !!)
Merci beaucoup j'ai compris mon erreur! J'ai remplacé le n par le i dans la boucle et je trouve alors les bons résultats. Faut-il cependant ajouter une condition au programme puisque Un n'est pas définie pour n=0? Je pense à ajouter une condition telle que if n==0:
Print("Un n'est pas définie") est-ce réellement nécessaire ?
Un est parfaitement définie pour n = 0
cela vaut U0 = 2
en ce qui concerne Python si on lui dit n = 0 il va faire la boucle dans un range(1, 1) c'est à dire pour les nombres de 1 à 0 inclus (!!)
la doc Python dit plus ou moins que
>>> list(range(1,1))
[]
liste vide, donc aucune boucle exécutée
donc ça baigne : il donne la valeur initiale inchangée de u qui est justement U0 = 2
mais bof ... la clarté de la chose (devoir se reporter à la doc Python sur des effets de bord de valeurs non usuelles) ne saute pas aux yeux !
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :