Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Progammer des suites

Posté par
Koussine
14-03-21 à 14:19

Bonjour à tous,
J'aimerais beaucoup avoir une aide sur cet exercice qui me bloque:
On considère des listes de nombres définies de la manière suivante:
Etape 0->L0=(1)
Etape 1->L1=(1,1/2)
Etape 2->L2=(1,1/2,1/2,1/4)
Etape 3->L3=(1,1/2,1/2,1/4,1/2,1/4,1/4,1/8)

On obtient chaque liste en recopiant la suivante et en y rajoutant les mêmes termes divisés par 2.

1. a) quelle est la plus petite valeur n pour laquelle la liste Ln contient plus de 2020 éléments.
J'ai trouvé ici que n=11 en rajoutant le double de la liste précédente à la suivante.

      b) compléter le programme suivant pour qu'il renvoie le 2020e élément de Ln où n est l'entier déterminer à la question 1.a)
(capture d'écran du programme ci-joint)
J'ai recopié le programme sur python en remplaçant les pointillés par certaines valeur mais il ne me donne aucun résultat

2. Pour tout entier naturel n, on appelle Un le dernier élément de la liste Ln.
       a) Exprimer Un+1 en fonction de Un pour tout entier naturel n. Que peut-on en déduire pour la suite (Un)?
J'ai trouvé que U[sub]n+1=Un+Un*2 et que la suite est croissante.
        b)Que peut-on conjoncturer sur la limite de (Un)?
On peut dire que n tend vers l'infini je pense

Voilà, merci beaucoup pour votre aide!

Posté par
carpediem
re : Progammer des suites 14-03-21 à 14:22

salut

et si tu nous le donnais ce programme python ?

Posté par
Koussine
re : Progammer des suites 14-03-21 à 14:34

Ah mince il ne s'est pas inséré:
def list():
         L=[1]
         for k in range(…):
                 U=[i*0.5 for i in L]
                 L=L+...
         return(L[...])

Posté par
carpediem
re : Progammer des suites 14-03-21 à 15:25

et alors ?

en regardant les quatre étapes de l'énoncé comment peux-tu compléter cet algo ?

Posté par
Koussine
re : Progammer des suites 14-03-21 à 15:35

Eh bien j'avais pensé à faire ça:
def list():
         L=[1]
         for k in range(12):
                 U=[i*0.5 for i in L]
                 L=L+U
         return(L[2020])
Mais ça ne fonctionne pas

Posté par
carpediem
re : Progammer des suites 14-03-21 à 16:24

qu'est-ce que te marque la calculatrice quand tu essaies ?

peut-être est-ce la ligne L = L + U ?

elle ne me semble pas convenir à priori ... car ce n'est pas la bonne instruction pour concaténer deux listes

cette opération L = L + U consiste à faire la somme terme à terme ...

Posté par
Koussine
re : Progammer des suites 14-03-21 à 16:42

Sur le programme Python, j'ai inscrit ce que j'ai écrit à ma réponse précédente.
J'ai réessayé avec L=L+k/2*U mais ma console ne me met aucun résultat.

Posté par
alb12
re : Progammer des suites 14-03-21 à 17:48

salut,
Qu'as tu tape dans la console ?

Posté par
Koussine
re : Progammer des suites 14-03-21 à 17:51

salut.  Justement, je ne vois pas quelle valeur je peux rajouter vu que j'ai déjà mis toutes les infos dans mon programme.

Posté par
alb12
re : Progammer des suites 14-03-21 à 17:54

dans la console tu tapes list()

Posté par
Koussine
re : Progammer des suites 14-03-21 à 18:02

ah maintenant je vois où j'ai fait des erreurs. Mais la console me dit que (L[2020]) ne peut pas être possible car on ne peut pas insérer des crochets dans une liste or dans l'énoncé ils disent le contraire.

Posté par
alb12
re : Progammer des suites 14-03-21 à 18:35

ton programme devrait fonctionner (meme s'il comporte quelques inexactitudes)
Peux tu coller ton code entre les balises du bouton </> en bas de ton message ?

Posté par
Koussine
re : Progammer des suites 14-03-21 à 18:51

Par "code" vous voulez dire ce qu'il y marqué dans la console?
si oui;

 File "<module1>", line 6, in list
TypeError: unsupported operand type(s) for /: 'list' and 'int'

Au passage, voici ce que j'ai modifié dans mon programme:
def list():
    L=[1]
    for k in range(12):
        U=[i*0.5 for i in L]
        L=L+L/2+U
    return(L[2020])

Mais est-ce que ces inexactitudes faussent mes réponses dans les questions suivantes 2 a) et b)? Merci d'avance

Posté par
alb12
re : Progammer des suites 14-03-21 à 19:18


def list():
    L=[1]
    for k in range(12): # pourquoi 12 ? 
        U=[i*0.5 for i in L] 
        L=L+L/2+U # non
    return(L[2020]) # pourquoi 2020 ? 


essaie ce code, la valeur de retour L est-elle exacte ?

def list():
         L=[1]
         for k in range(3):
                 U=[i*0.5 for i in L]
                 L=L+U
         return L

Posté par
Koussine
re : Progammer des suites 14-03-21 à 19:40

Ca fonctionne

def list():
    L=[1]
    for k in range(11):
        U=[i*0.5 for i in L]
        L=L+U
    return (L[2019])

J'ai juste modifié la ligne 3 et 6 pour répondre à l'énoncé.
Par contre, à un rang près j'avais écrit ce programme et la personne avant vous m'avait dit que j'avais faux.. c'est pour cela que j'ai tout modifié.

Posté par
alb12
re : Progammer des suites 14-03-21 à 20:05

en effet carpediem s'est trompe
Quand on doute on essaie un code avec des petites valeurs quitte à modifier le code.
Pour cela il faut imperativement ecrire des fonctions et verifier leurs valeurs de retour.

Posté par
Koussine
re : Progammer des suites 14-03-21 à 20:15

En tout cas merci encore pour votre aide j'essaye de continuer l'exercice!

Posté par
carpediem
re : Progammer des suites 14-03-21 à 20:16

oui je n'étais plus très sûr ... désolé

en passant plutôt qu'une boucle peut-on alors faire directement : L = L + L/2 ?

Posté par
carpediem
re : Progammer des suites 14-03-21 à 20:18

en fait je confondais avec la "méthode" append() ... qui ne rajoute qu'un élément !!

Posté par
alb12
re : Progammer des suites 14-03-21 à 22:39

carpediem @ 14-03-2021 à 20:16

en passant plutôt qu'une boucle peut-on alors faire directement : L = L + L/2 ?

non

>>> [2,4]/2
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'list' and 'int'

Posté par
carpediem
re : Progammer des suites 15-03-21 à 07:56

merci alb12...

en fait ça ne marche donc pas comme les listes avec TI ou casio donc ...

Posté par
alb12
re : Progammer des suites 15-03-21 à 19:04

en effet python n'est pas tres intuitif, pas toujours simple pour le lycee.



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 1674 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 !