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!
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[...])
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
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 ...
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.
salut. Justement, je ne vois pas quelle valeur je peux rajouter vu que j'ai déjà mis toutes les infos dans mon programme.
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.
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 ?
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'
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])
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 ?
def list():
L=[1]
for k in range(3):
U=[i*0.5 for i in L]
L=L+U
return L
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])
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 ?
>>> [2,4]/2
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'list' and 'int'
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :