Algorithmique et programmation (Python)
🟠 Difficile📝 Les énoncés sont gratuits, et les 2 premiers corrigés sont offerts. Les autres corrigés détaillés sont réservés aux abonnés.
- 1
La suite est définie par et . On cherche le plus petit tel que .
def seuil():
u = 800
n = 0
while u >= 100:
u = 0.75 * u
n = n + 1
return n
a) Déroule la boucle et donne la valeur renvoyée.
b) Retrouve ce résultat par le calcul, avec le logarithme.✅ Voir le corrigéoffert
a) On multiplie par 0,75 tant que u reste supérieur ou égal à 100.
Tour 1 : , .
Tour 2 : , .
Tour 3 : , .
Tour 4 : , .
Tour 5 : , .
Tour 6 : , .
Tour 7 : , .
Tour 8 : , .
La condition devient fausse : la fonction renvoie 8.
b) On cherche le plus petit tel que .
Soit , puis .
Le logarithme de 0,75 étant négatif, l'inégalité s'inverse en divisant.
.
Le plus petit entier convenable est donc 8 ✓. - 2
On considère le programme suivant.
s = 0
for k in range(1, 21):
s = s + k * k
print(s)
a) Que calcule ce programme ? Donne la valeur affichée.
b) Modifie-le pour qu'il calcule la somme des cubes des mêmes entiers.✅ Voir le corrigéoffert
a) La boucle parcourt les entiers de 1 à 20 et cumule leurs carrés.
Le programme calcule donc .
La formule connue donne avec .
.
Le programme affiche 2 870.
b) Il suffit de remplacer « k * k » par « k * k * k » (ou « k ** 3 »).
s = 0
for k in range(1, 21):
s = s + k ** 3
print(s)
La somme des cubes vaut . - 3
On approche une intégrale par la méthode des rectangles.
def aire(n):
s = 0
h = 1 / n
for k in range(n):
s = s + h * (k * h) ** 2
return s
a) Que calcule cette fonction quand n est grand ?
b) Calcule aire(4) à la main.🔒 Corrigé réservé aux abonnésS'abonner → - 4
On simule 10 000 lancers d'une pièce.
import random
def simule(n):
c = 0
for i in range(n):
if random.random() < 0.5:
c = c + 1
return c / n
a) Que renvoie simule(10000) approximativement ? Justifie.
b) Comment modifier le code pour simuler une pièce truquée donnant pile 3 fois sur 5 ?🔒 Corrigé réservé aux abonnésS'abonner → - 5
Écris une fonction dichotomie(a, b, p) qui encadre à la précision p la solution de sur , pour .
a) Écris la fonction.
b) Explique pourquoi la boucle se termine toujours.🔒 Corrigé réservé aux abonnésS'abonner → - 6
On considère le programme suivant.
u = 2
for i in range(6):
u = u * u
print(u)
a) Déroule le programme et donne la valeur affichée.
b) Exprime le résultat sous forme d'une puissance de 2.🔒 Corrigé réservé aux abonnésS'abonner → - 7
Écris une fonction moyenne_ponderee(V, E) qui calcule la moyenne des valeurs de la liste V pondérées par les effectifs de la liste E.
a) Écris la fonction.
b) Applique-la à V = [8, 12, 16] et E = [3, 5, 2].🔒 Corrigé réservé aux abonnésS'abonner → - 8
On considère le programme suivant.
n = 1
c = 0
while n < 1000:
n = 3 * n
c = c + 1
print(c, n)
a) Déroule le programme et donne les deux valeurs affichées.
b) Retrouve la valeur de c à l'aide du logarithme.🔒 Corrigé réservé aux abonnésS'abonner → - 9
Écris une fonction compte(L, s) qui renvoie le nombre d'éléments de la liste L strictement supérieurs à s.
a) Écris la fonction.
b) Applique-la à L = [12, 7, 19, 4, 15, 9] avec s = 10.🔒 Corrigé réservé aux abonnésS'abonner → - 10
On considère la suite définie par et .
def terme(n):
u = 1
for i in range(n):
u = (u + 2) / (u + 1)
return u
a) Calcule , et à la main.
b) Vers quelle valeur la suite semble-t-elle tendre ? Vérifie par le calcul.🔒 Corrigé réservé aux abonnésS'abonner →
Comment ça s'est passé ?
Retrouve tout dans Mon suivi.
