Exercice

Retrouver tous les sujets résolus.
Répondre
Invité

Exercice

Message par Invité » ven. 27 mars 2020 01:08

Bonsoir,

Mon prof de Maths a donné un exercice de programmation Python à faire.

Soit (u_n), avec n entier naturel, la suite numérique à valeurs réelles définies par : u_0=0, u_1=0, u_2=1, et pour tout entier naturel non nul n, u_(n+2)=-u_(n+1)+5u_n-3u_(n-1).

Écrire un programme en Python afin de calculer u[sub]n[/sub].

Ce que je propose :

Code : Tout sélectionner

def suite(U0,U1,U2,n):
      A=U0
      B=U1
      C=U2
      UN=0
      for i in range (n):
            UN=-C+5B-3A
            A=B
            B=C
            C=UN
      return(UN)
Qu'est ce que vous en pensez ? Cela me paraît bien compliqué... Si le programme est juste, comment le simplifier ?

Merci beaucoup.
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: Exercice

Message par sos-math(21) » ven. 27 mars 2020 10:50

Bonjour,
ton code est presque correct et je ne vois pas de code plus simple puisque tu es bien obligé(e) de faire une affectation des 3 variables courantes.
Deux remarques :
- pense à mettre des * pour marquer la multiplication avec Python
- la boucle ne doit faire que \(n-2\) tours si tu veux avoir \(u_n\) car tu pars de \(u_2\).
Je te propose le code suivant :

Code : Tout sélectionner

def suite(U0,U1,U2,n):
      A = U0
      B = U1
      C = U2
      UN = 0
      for i in range (n-2):
            UN = -C+5*B-3*A
            A = B
            B = C
            C = UN
            #print("terme de rang {} : {}".format(i+3,UN)) # tu peux décommenter cette ligne si tu souhaites avoir un affichage de chaque terme intermédiaire
      return(UN)
Un appel avec le print décommenté donne :

Code : Tout sélectionner

>>> suite(0,0,1,6)
terme de rang 3 : -1
terme de rang 4 : 6
terme de rang 5 : -14
terme de rang 6 : 47
47
Bonne continuation
Invité

Re: Exercice

Message par Invité » ven. 27 mars 2020 13:11

D'accord, merci !

Par contre le problème est que je m'embrouille tout le temps pour savoir combien de tours il faut faire quand je dois écrire des programmes Python.

Comment trouvez vous rapidement le nombre de tours à réaliser quand vous écrivez un programme ?
Dans l'exercice je ne suis pas sûre d'avoir compris pourquoi il faut faire (n-2) tours...

Merci de m'aider.
SoS-Math(7)
Messages : 4001
Enregistré le : mer. 5 sept. 2007 12:04

Re: Exercice

Message par SoS-Math(7) » ven. 27 mars 2020 13:26

Bonjour,

Comme toujours, plus tu programmes et plus tu repères ce type d'information. Pour t'aider, analyse la situation avec des valeurs numériques.
Tu connais les termes \(u_0\), \(u_1\), \(u_2\). Pour calculer \(u_3\) que vas-tu faire, combien de tours ? Quel lien entre le rang 3 de ce terme et le nombre de tours ?
De même combien de tours faut-il pour calculer \(u_4\)? Quel lien entre le rang 4 de ce terme et le nombre de tours ?
etc...
Normalement, le nombre \(n-2\) apparait assez naturellement.

Bonne continuation.
Répondre