Qui aura 20 en maths ? : tu es en Terminale et tu veux tester ton niveau ? Rendez-vous le 30 janvier 2027 à l’EFREI (Villejuif) 🎁 À la clé : 2 MacBook, 2 iPhone, 2 iPad et 2 paires d’AirPods à gagner
Encadrer 2 par balayage (algorithme) - Exercice 1
20 min
35
On souhaite obtenir un encadrement de 2 d'amplitude 10−n, où n est un entier naturel, à l'aide de la fonction Python ci-dessous.
Question 1
Justifier que 1≤2≤2. Pourquoi peut-on commencer le balayage à a=1 ?
Correction
Pour deux nombres positifsa et b : a≤b si et seulement si a2≤b2.
On a 12=1, (2)2=2 et 22=4. Comme 1≤2≤4 et que ces trois nombres 1, 2 et 2 sont positifs :
1≤2≤2
Le nombre 2 est donc entre 1 et 2 : en partant de a=1, on est sûr de commencer en dessous de 2.
Question 2
Expliquer le rôle de la boucle while et ce que renvoie la fonction.
Correction
La variable pas vaut 10−n. Tant que (a+pas)2≤2, c'est-à-dire tant que a+pas≤2, on avance a d'un pas : on « balaie » les nombres 1 ; 1+pas ; 1+2×pas ; … À la sortie de la boucle :
a≤2, car a n'a avancé que lorsque a+pas≤2 ;
(a+pas)2>2, donc a+pas>2.
La fonction renvoie deux nombres a et a+10−n tels que a≤2<a+10−n : un encadrement de 2 d'amplitude 10−n.
Remarque : Python calcule de façon approchée avec les nombres décimaux. Sans la fonction round, qui arrondit à n chiffres après la virgule, on obtiendrait par exemple 1.4000000000000004 au lieu de 1.4.
Question 3
Faire fonctionner la fonction pour n=1 en complétant le tableau ci-dessous, puis donner l'encadrement obtenu.
Correction
Pour n=1, la variable pas vaut 10−1=0,1.
Lorsque a=1,4, on a (1,5)2=2,25>2 : la boucle s'arrête et la fonction renvoie (1.4, 1.5).
1,4≤2<1,5
Question 4
L'appel balayage(3) renvoie (1.414, 1.415). Interpréter ce résultat, puis dire combien de fois la boucle a été parcourue.
Correction
L'appel balayage(3) donne un encadrement d'amplitude 10−3 :
1,414≤2<1,415
La variable a est passée de 1 à 1,414 par pas de 0,001. La boucle a donc été parcourue 0,0011,414−1=414 fois.
Chaque décimale supplémentaire multiplie environ par 10 le nombre de passages dans la boucle : la méthode est simple, mais lente.
Question 5
Comment modifier la fonction pour obtenir un encadrement de 3 ? Quel résultat obtient-on pour n=2 ?
Correction
Comme 1≤3≤4, on a 1≤3≤2 : on peut encore commencer à a=1. Il suffit de remplacer 2 par 3 dans la condition de la boucle (ligne 4).
Pour n=2 : 1,732=2,9929≤3 et 1,742=3,0276>3. La fonction renvoie (1.73, 1.74).
1,73≤3<1,74
Signaler une erreur
Aide-nous à améliorer nos contenus en signalant les erreurs ou problèmes que tu penses avoir trouvés.
Connecte-toi ou crée un compte pour signaler une erreur.