Algorithmique et programmation (Python)
🟠 DifficileLes é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
On simule le lancer d'un dé équilibré à 6 faces.
import random
def lancer():
return random.randint(1, 6)
a) Quelles valeurs peut renvoyer lancer(), et avec quelles probabilités ?
b) On appelle lancer() 9 000 fois et on compte les 4. Autour de quelle valeur ce compte devrait-il se situer ? Je remplis case par case !
Voir le corrigéoffert
a) randint(1, 6) renvoie un entier entre 1 et 6, bornes comprises.
Contrairement à range, la borne supérieure est ici incluse.
Les six valeurs 1, 2, 3, 4, 5 et 6 sont équiprobables.
Chacune a donc une probabilité .
b) L'espérance du nombre de 4 vaut .
Le compte observé devrait donc se situer autour de 1 500.
Il ne vaudra presque jamais exactement 1 500 : c'est une fluctuation d'échantillonnage.
Mais l'écart relatif diminue quand le nombre de lancers augmente.
Sur 90 lancers, on pourrait obtenir 10 ou 20 ; sur 9 000, on restera proche de 1 500. - 2
On considère le programme suivant.
c = 0
for n in range(1, 61):
if n % 4 == 0:
c = c + 1
print(c)
a) Que compte ce programme ? Donne la valeur finale de c.
b) Que deviendrait le résultat avec « range(1, 60) » ?Voir le corrigéoffert
a) L'opérateur % donne le reste de la division euclidienne.
La condition « n % 4 == 0 » est vraie quand n est un multiple de 4.
Le programme compte donc les multiples de 4 parcourus.
« range(1, 61) » parcourt les entiers de 1 à 60 (la borne 61 est exclue).
Les multiples de 4 dans cet intervalle vont de 4 à 60.
Il y en a .
Le programme affiche 15.
b) « range(1, 60) » s'arrêterait à 59, en excluant 60.
Or 60 est un multiple de 4 : il ne serait plus compté.
Le programme afficherait alors 14.
Ce décalage d'une unité sur la borne est une source d'erreur très fréquente.8 corrigés détaillés pas à pas restent à débloquer
Chacun reprend l'énoncé, montre le calcul étape par étape et dit où se trouve le piège.
Le pack de révision, gratuit
L'essentiel des dix premiers chapitres du programme, en PDF : ce qu'il faut retenir et les questions qui vérifient que c'est acquis. Puis 5 e-mails sur 14 jours, et c'est tout.
- 3
On considère la compréhension de liste suivante.
L = [n * n for n in range(1, 13) if n % 3 == 0]
a) Que contient la liste L ?
b) Réécris ce code avec une boucle « for » classique et une liste vide au départ.🔒 Corrigé détailléVoir ce qu'il contient → - 4
Écris une fonction moyenne(L) qui calcule la moyenne des nombres d'une liste L.
a) Écris la fonction sans utiliser sum().
b) Applique-la à [14, 9, 17, 12, 8].🔒 Corrigé détailléVoir ce qu'il contient → - 5
On considère le programme suivant.
n = 200
c = 0
while n > 1:
n = n // 2
c = c + 1
print(c)
a) Déroule le programme et donne la valeur de c.
b) Que représente c par rapport à n ?🔒 Corrigé détailléVoir ce qu'il contient → - 6
On considère la suite définie par et .
def terme(n):
u = 4
for i in range(n):
u = 3 * u - 5
return u
a) Calcule à la main , et , puis vérifie ce que renvoie terme(3).
b) Pourquoi la boucle s'écrit-elle « range(n) » et non « range(n + 1) » ?🔒 Corrigé détailléVoir ce qu'il contient → - 7
Écris une fonction maximum(L) qui renvoie le plus grand élément d'une liste L, SANS utiliser max().
a) Écris la fonction.
b) Déroule-la sur la liste [6, 11, 3, 19, 8].🔒 Corrigé détailléVoir ce qu'il contient → - 8
Écris une fonction nb_solutions(a, b, c) qui renvoie le nombre de solutions réelles de (avec ).
a) Écris la fonction en utilisant le discriminant.
b) Applique le raisonnement à .🔒 Corrigé détailléVoir ce qu'il contient → - 9
On considère le programme suivant.
u = 1
n = 0
while u < 500:
u = 2 * u + 3
n = n + 1
print(n, u)
a) Déroule le programme et donne les deux valeurs affichées.
b) Que se passerait-il si l'on remplaçait « 2 * u + 3 » par « u + 3 » ? Et par « u - 1 » ?🔒 Corrigé détailléVoir ce qu'il contient → - 10
Une population de 300 bactéries augmente de 12 % par heure.
p = 300
h = 0
while p <= 600:
p = p * 1.12
h = h + 1
print(h)
a) Déroule la boucle et donne la valeur affichée.
b) Que calcule ce programme, et pourquoi utilise-t-on une boucle « while » plutôt qu'une boucle « for » ?🔒 Corrigé détailléVoir ce qu'il contient →
Comment ça s'est passé ?
Retrouve tout dans Mon suivi.
Le pack de révision, gratuit
L'essentiel des dix premiers chapitres du programme, en PDF : ce qu'il faut retenir et les questions qui vérifient que c'est acquis. Puis 5 e-mails sur 14 jours, et c'est tout.
Partager avec ma classe
Les énoncés de cette page sont gratuits et s'ouvrent sans compte : l'adresse peut être donnée telle quelle, au tableau ou dans l'espace numérique de travail.
