Algorithmique et programmation (Python)
🟡 Moyen📝 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 u₀ = 1000 et uₙ₊₁ = 0,8 uₙ. On cherche le plus petit n tel que uₙ < 100 :
def seuil():
u = 1000
n = 0
while u >= 100:
u = 0.8 * u
n = n + 1
return n
Déroule la boucle et donne la valeur renvoyée.✅ Voir le corrigéoffert
Multiplier par 0,8 fait diminuer u de 20 % à chaque tour. La boucle continue TANT QUE u ≥ 100.
Suivons u (valeurs arrondies) et n :
n = 1 : u = 800
n = 2 : u = 640
n = 3 : u = 512
n = 4 : u = 409,6
n = 5 : u = 327,68
n = 6 : u ≈ 262,14
n = 7 : u ≈ 209,72
n = 8 : u ≈ 167,77
n = 9 : u ≈ 134,22
n = 10 : u ≈ 107,37 (encore ≥ 100)
n = 11 : u ≈ 85,90 → cette fois u < 100, on sort.
La fonction renvoie 11.
Interprétation : il faut 11 étapes pour que la suite passe sous 100. - 2
On considère la suite définie par u₀ = 3 et uₙ₊₁ = 3uₙ + 2.
a) Écris une fonction terme(n) qui renvoie uₙ.
b) Calcule u₁, u₂ et u₃ à la main.✅ Voir le corrigéoffert
a) On part de u = u₀ = 3, puis on applique n fois la relation uₙ₊₁ = 3uₙ + 2 :
def terme(n):
u = 3
for i in range(n):
u = 3 * u + 2
return u
La boucle tourne n fois : après n passages, u contient uₙ.
b) Calculons pas à pas :
u₀ = 3
u₁ = 3 × 3 + 2 = 9 + 2 = 11
u₂ = 3 × 11 + 2 = 33 + 2 = 35
u₃ = 3 × 35 + 2 = 105 + 2 = 107
Ainsi terme(1) = 11, terme(2) = 35, terme(3) = 107.
Vérification : terme(0) doit renvoyer u₀ = 3, ce qui est le cas car la boucle ne s'exécute alors pas. ✓ - 3
Que compte ce programme ? Donne la valeur finale de c.
c = 0
for n in range(1, 101):
if n % 7 == 0:
c = c + 1
print(c)🔒 Corrigé réservé aux abonnésS'abonner → - 4
On répète 20 fois une épreuve qui réussit avec probabilité p = 0,3, et on compte les succès :
import random
def experience():
s = 0
for i in range(20):
if random.random() < 0.3:
s = s + 1
return s
a) Quelle loi suit la variable renvoyée par experience() ?
b) Quelle est l'espérance du nombre de succès ? Autour de quelle valeur s se situe-t-il ?🔒 Corrigé réservé aux abonnésS'abonner → - 5
Écris une fonction indice_max(L) qui renvoie l'INDICE (la position) du plus grand élément d'une liste L. Applique-la à L = [5, 12, 7, 20, 8].
🔒 Corrigé réservé aux abonnésS'abonner → - 6
On donne la fonction :
def somme_chiffres(n):
s = 0
while n > 0:
s = s + n % 10
n = n // 10
return s
Que renvoie somme_chiffres(2734) ?🔒 Corrigé réservé aux abonnésS'abonner → - 7
On dispose des notes d'un échantillon d'élèves : L = [6, 9, 7, 10, 8, 14]. Écris une fonction moyenne(L) qui calcule la moyenne des nombres d'une liste, puis applique-la à cet échantillon.
🔒 Corrigé réservé aux abonnésS'abonner → - 8
Que contient la liste L construite par cette compréhension ?
L = [n*n - 1 for n in range(1, 8) if n % 2 == 1]🔒 Corrigé réservé aux abonnésS'abonner → - 9
On donne la fonction :
def compte(L, v):
c = 0
for x in L:
if x == v:
c = c + 1
return c
Que renvoie compte([2, 5, 2, 7, 2, 5], 2) ?🔒 Corrigé réservé aux abonnésS'abonner → - 10
On simule la somme de deux dés équilibrés à 6 faces :
import random
def somme_deux_des():
return random.randint(1, 6) + random.randint(1, 6)
a) Entre quelles valeurs se trouve le résultat renvoyé ?
b) Quelle somme a la plus grande probabilité d'apparaître ? Justifie.🔒 Corrigé réservé aux abonnésS'abonner →
Comment ça s'est passé ?
Retrouve tout dans Mon suivi.
