Inscription / Connexion Nouveau Sujet
Niveau LicenceMaths 2e/3e a
Partager :

programme Python suite récurrente d'ordre 2

Posté par
louetcharles
01-03-19 à 13:24

Bonjour à toutes et tous,

Il me faut pour un examen apprendre à programmer en Python et "mon grand âge" bloque
car j'ai beau regarder plein de tutoriels ; quand je tape moi-même quelque chose , un message d'erreur ou de "variable non définie" s'affiche et je n'arrive pas à corriger

Je dois écrire un programme qui calcule et affiche les termes de (Un) jusqu'à l'obtention d'un terme supérieur à 1000 . La suite est définie ainsi:
Uo=2   U1=1   Un=5U(n-1) -2U(n-2)
(n-1) et (n-2) sont des indices
J'ai pensé à : pour n=0 afficher "U= 2"  et pour n=1 afficher "U=1"
(a,b)=(2,1)
Pour i allant de 2 à n
(a,b)=(b,5b-2a)
tant que b<1000
afficher b

Mais impossible avec Python que j'ai beaucoup de mal à aborder

Je suis perdue!

Merci à vous

Posté par
sanantonio312
re : programme Python suite récurrente d'ordre 2 01-03-19 à 13:55

Bonjour,
Je ne connais pas Python, mais sur le principe,
je déclarerais 4 variables n, u0, u1 et u2.
n pour l'indice, u0 pour u(n), u1 pour u(n-1) et u2 pour u(n-2)
Initialisations:
n=2, u2=2 (u0), u1=1 (u1) et u0=5*u1-2*u2
Puis je ferais un "tant que":
Tant que u0<1000
    n=n+1
    u2=u1
    u1=u0
    u0=5*u1-2*u2
Fin_Tant_Que
Afficher n (et éventuellement u0)

Posté par
alb12
re : programme Python suite récurrente d'ordre 2 01-03-19 à 15:01

salut,
en utilisant l'affectation multiple.


def TermesSuite():
    u,v=2,1
    print(u)
    while u<1000:
        u,v=v,5*v-2*u
        print(u)

Posté par
carpediem
re : programme Python suite récurrente d'ordre 2 01-03-19 à 15:11

salut

oui ton pb est la ligne : (a, b) = (2, 1)

python ne connait pas ...

et quand on ne connait pas les variables possibles il suffit de faire des affectations simples et trois variables suffisent ...

u = 2
v = 1
p = 0

while  p < n
    w = 5u + 2v
    v = u
    u = w


...

Posté par
louetcharles
re : programme Python suite récurrente d'ordre 2 03-03-19 à 21:50


  Un grand merci à vous tous !

  J'ai écrit ceci qui me donne le bon résultat mais je ne sais pas si le rendu est celui attendu d'un enseignant :

    a,b,c=2,1,1
    while c<1000
              a,b,c=b,c,5*c-2*b
              print(c)

le programme m'a renvoyé :
3
13
59
269
1227

Posté par
alb12
re : programme Python suite récurrente d'ordre 2 03-03-19 à 22:45

1/ Quel est l'interet d'utiliser 3 variables ?
2/ Ce programme n'affiche pas tous les termes

Posté par
carpediem
re : programme Python suite récurrente d'ordre 2 04-03-19 à 14:06

sans multi-affectation il est nécessaire d'utiliser trois variables !!! (enfin ...)

avec multi-affectation alors :

a/ il faut savoir comment ça marche
b/ on peut se contenter de deux variables

mais ce n'est pas utiliser la multi-affectation qui rend plus intelligent !!! ou stimule l'intellect ...

Posté par
alb12
re : programme Python suite récurrente d'ordre 2 04-03-19 à 18:15

j'ai suivi l'idee de louetcharles !

Posté par
mathafou Moderateur
re : programme Python suite récurrente d'ordre 2 05-03-19 à 13:05

Bonjour,

en passant

carpediem @ 01-03-2019 à 15:11

oui ton pb est la ligne : (a, b) = (2, 1)

python ne connait pas ...
mais, si ça marche très bien.
le problème est la salade de pour et de tant que, la structure mauvaise de l'algorithme.
(et que ce n'est pas écrit en Python du tout)



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !