Aller au contenu

Mathématiques (spécialité) · TerminaleBac

Algorithmes de seuil et de dichotomie : cours de Terminale

Publié le 7 novembre 2026 · Mis à jour le 7 novembre 2026 · Signaler une erreur

L'essentiel

  • Un algorithme de seuil répète un calcul dans une boucle while tant que la condition n'est pas atteinte, puis renvoie le rang trouvé 3.
  • La dichotomie coupe l'intervalle de recherche en deux à chaque étape et garde une seule moitié 2.
  • Pour résoudre f(x)=0f(x)=0, on garde la moitié où le signe de ff change ; la précision est b−a2n\frac{b-a}{2^n} après nn étapes.
  • Une recherche dans une liste triée par dichotomie est bien plus rapide qu'un parcours un par un, dont le temps croît linéairement 2.
  • Une boucle non bornée doit toujours se terminer : vérifie que la condition d'arrêt finit par être fausse 2.

Pourquoi ces deux algorithmes ?

Tu connais déjà les suites et les fonctions. Une question revient sans cesse : à partir de quel rang une suite dépasse-t-elle une valeur donnée ? Ou encore : où une fonction s'annule-t-elle, à peu près ? Résoudre ces questions à la main est parfois long, voire impossible avec une formule. Un petit programme y arrive sans effort.

Ce cours présente deux outils très présents en spécialité mathématiques :

  • l'algorithme de seuil, qui cherche le premier rang où une condition devient vraie ;
  • l'algorithme de dichotomie, qui encadre une solution de plus en plus finement.

Les deux reposent sur une boucle while. Les deux se programment en Python en moins de dix lignes. Et les deux tombent régulièrement au bac, sous forme de script à compléter ou à interpréter.

Le programme de terminale demande de manipuler variables, affectation, instruction conditionnelle et boucle, et d'utiliser les notions de fonction informatique et de liste 1. Il précise aussi que l'algorithmique trouve sa place dans toutes les parties du programme 1. Pour les suites, l'un des objectifs cités est de calculer un terme de rang donné et d'étudier des seuils 3.

Les étapes d'une dichotomieQuatre étapes : calculer le milieu, comparer, garder une moitié, recommencer jusqu'à la précision.1MilieuCalculer m = (a + b) / 22ComparerRegarder le signe de f(m) ou comparer à la valeur3GarderConserver une seule moitié de l'intervalle4RépéterTant que la largeur dépasse la précision
  1. MilieuCalculer m = (a + b) / 2
  2. ComparerRegarder le signe de f(m) ou comparer à la valeur
  3. GarderConserver une seule moitié de l'intervalle
  4. RépéterTant que la largeur dépasse la précision
Les étapes d'une dichotomie · On resserre l'intervalle jusqu'à atteindre la précision voulue.

Les briques de base d'un algorithme

Pour écrire nos deux algorithmes, il te faut quatre briques :

  • une variable : une case mémoire qui porte un nom (n, u, a, b) ;
  • une affectation : on range une valeur dans une variable, par exemple n = n + 1 ;
  • une instruction conditionnelle : if ... else ... choisit entre deux actions ;
  • une boucle : ici while, qui répète tant qu'une condition est vraie.

Ces notions figurent parmi celles que le programme veut voir maîtrisées 1.

L'algorithme de seuil

Prenons la suite (un)(u_n) définie par u0=100u_0 = 100 et un+1=1,2 unu_{n+1} = 1{,}2\,u_n. Elle croît. On veut le plus petit rang nn tel que un>500u_n > 500. Comparer l'évolution d'une suite à une valeur fixée, c'est ce qu'on appelle chercher un seuil 3.

Démonstration · Vérification par le calcul

On a un=100×1,2nu_n = 100 \times 1{,}2^n. La condition un>500u_n > 500 équivaut à 1,2n>51{,}2^n > 5. Or 1,28≈4,301{,}2^8 \approx 4{,}30 et 1,29≈5,161{,}2^9 \approx 5{,}16. Le premier rang qui convient est bien n=9n = 9, ce qui confirme le résultat du programme.

Le principe de la dichotomie

Imagine que tu cherches un mot dans un dictionnaire. Tu ne lis pas toutes les pages : tu ouvres au milieu, tu regardes si le mot est avant ou après, puis tu élimines une moitié. Tu recommences sur la moitié restante. C'est exactement l'idée de la dichotomie.

Pour que ça marche, il faut un critère qui indique dans quelle moitié se trouve la réponse. Deux situations classiques :

  • une liste triée : en comparant l'élément du milieu à la valeur cherchée, on sait si l'on poursuit à gauche ou à droite ;
  • une fonction dont le signe change sur l'intervalle : le signe de la valeur au milieu indique quelle moitié contient l'annulation.

Dichotomie dans une liste triée

La recherche dichotomique permet de traiter efficacement des données rangées de façon ordonnée dans un tableau 2. Comme elle est destinée à des données triées, vérifie toujours cette condition : sur une liste dans le désordre, l'algorithme donne des résultats faux.

Lorsque la valeur n'est pas dans la liste, la boucle se termine quand les bornes se croisent (g > d). La fonction renvoie alors -1, valeur qui signifie que la recherche a échoué. Dans la ressource de référence, une valeur de sortie particulière joue le même rôle pour indiquer que la valeur n'est pas présente 2.

Dichotomie pour résoudre f(x) = 0

Au bac, la dichotomie sert surtout à encadrer une solution de f(x)=0f(x)=0 avec une précision fixée. On part d'un intervalle [a ; b][a\,;\,b] sur lequel la fonction ff est continue et où f(a)f(a) et f(b)f(b) sont de signes contraires : la courbe passe alors forcément de l'autre côté de l'axe des abscisses, donc elle le coupe quelque part dans l'intervalle.

Dichotomie pour f(x) = x² − 2 sur [1 ; 2]
ÉtapeMilieu mf(m)Nouvel intervalleLargeur
0——[1 ; 2]1
11,50,25[1 ; 1,5]0,5
21,25−0,4375[1,25 ; 1,5]0,25
31,375−0,109375[1,375 ; 1,5]0,125
41,43750,06640625[1,375 ; 1,4375]0,0625
Dichotomie pour f(x) = x² − 2 sur [1 ; 2] · La largeur est divisée par 2 à chaque étape.

Après quatre étapes, la solution est encadrée dans [1,375 ; 1,4375][1{,}375\,;\,1{,}4375]. La largeur vaut 0,06250{,}0625. La valeur exacte est 2≈1,41421\sqrt{2} \approx 1{,}41421, bien dans l'intervalle trouvé.

Démonstration · Pourquoi la largeur est divisée par 2

À chaque tour, on remplace [a ; b][a\,;\,b] par [a ; m][a\,;\,m] ou par [m ; b][m\,;\,b] avec m=a+b2m = \frac{a+b}{2}. Dans les deux cas, la nouvelle largeur est b−a2\frac{b-a}{2}. Par récurrence immédiate, après nn tours elle vaut L2n\frac{L}{2^n}.

Rapidité, arrêt et validité

Pourquoi préférer la dichotomie ? Parce qu'elle va beaucoup plus vite qu'un balayage un par un. Un parcours qui regarde les éléments dans l'ordre a une complexité linéaire : si la liste devient deux fois plus longue, le temps de recherche double 2. La dichotomie, elle, ne fait qu'ajouter un tour quand la liste double, puisqu'un tour supplémentaire suffit à partager en deux la zone à explorer.

La ressource de référence souligne d'ailleurs qu'une boucle non bornée demande de s'assurer qu'on obtient bien un arrêt 2. Prends l'habitude de te poser la question à chaque while que tu écris.

Méthode pour le bac

Exercices corrigés

Exercice 1 Un seuil pour une suite géométrique

★☆☆Environ 10 min

Une suite est définie par u0=100u_0 = 100 et un+1=1,2 unu_{n+1} = 1{,}2\,u_n. On cherche le plus petit entier nn tel que un>500u_n > 500.

  1. Écris la condition de la boucle while d'un programme qui renvoie ce rang.
  2. Détermine ce rang par le calcul, en résolvant l'inégalité 1,2n>51{,}2^n > 5 à l'aide du logarithme ou de valeurs approchées.
Indice 1

Exprime unu_n en fonction de nn : suite géométrique de raison 1,2.

Indice 2

Teste 1,281{,}2^8 et 1,291{,}2^9 à la calculatrice.

Voir la correction pas à pas
  1. La boucle doit continuer tant que l'objectif n'est pas atteint. L'objectif est u>500u > 500, donc la condition est u <= 500.

  2. La suite est géométrique : un=100×1,2nu_n = 100 \times 1{,}2^n.

  3. L'inégalité un>500u_n > 500 équivaut à 1,2n>51{,}2^n > 5, soit n>ln⁡5ln⁡1,2n > \dfrac{\ln 5}{\ln 1{,}2}.

  4. Calcul : ln⁡5ln⁡1,2≈8,83\dfrac{\ln 5}{\ln 1{,}2} \approx 8{,}83. Le plus petit entier strictement supérieur est 99.

  5. Contrôle : 1,28≈4,30<51{,}2^8 \approx 4{,}30 < 5 et 1,29≈5,16>51{,}2^9 \approx 5{,}16 > 5. Le rang cherché est n=9n = 9.

Le seuil de 500 est franchi au rang 9. Le programme et le calcul donnent le même résultat, ce qui rassure.

Exercice 2 Combien d'étapes pour une précision donnée ?

★★☆Environ 10 min

On applique une dichotomie sur un intervalle de largeur initiale 11. On veut une largeur finale strictement inférieure à 0,0010{,}001.

  1. Donne la largeur de l'intervalle après nn étapes.
  2. Détermine le plus petit nombre nn d'étapes nécessaires.
Indice 1

À chaque étape, la largeur est divisée par 2.

Indice 2

Cherche le plus petit nn tel que 2n>10002^n > 1000.

Voir la correction pas à pas
  1. Après chaque étape, la largeur est divisée par 2. Après nn étapes elle vaut 12n\dfrac{1}{2^n}.

  2. On veut 12n<0,001\dfrac{1}{2^n} < 0{,}001, c'est-à-dire 2n>10002^n > 1000.

  3. Essais : 29=5122^9 = 512, qui est inférieur à 1000 ; 210=10242^{10} = 1024, qui est supérieur à 1000.

  4. Avec le logarithme : n>ln⁡1000ln⁡2≈9,97n > \dfrac{\ln 1000}{\ln 2} \approx 9{,}97, donc n=10n = 10.

  5. Contrôle : après 10 étapes, la largeur est 11024≈0,00098<0,001\dfrac{1}{1024} \approx 0{,}00098 < 0{,}001.

Il faut 10 étapes. Ce genre de calcul permet de prévoir la durée d'un programme avant même de l'écrire.

Exercice 3 Trois étapes de dichotomie à la main

★★★Environ 15 min

On considère f(x)=x2−2f(x) = x^2 - 2 sur [1 ; 2][1\,;\,2] et l'algorithme de dichotomie du cours.

  1. Vérifie que f(1)f(1) et f(2)f(2) sont de signes contraires.
  2. Déroule les deux premiers tours et donne l'intervalle obtenu.
  3. Quel est le milieu calculé au troisième tour ?
Indice 1

Au premier tour, m=1,5m = 1{,}5 : calcule f(1,5)f(1{,}5).

Indice 2

Garde la moitié où le signe change.

Voir la correction pas à pas
  1. f(1)=1−2=−1<0f(1) = 1 - 2 = -1 < 0 et f(2)=4−2=2>0f(2) = 4 - 2 = 2 > 0 : les signes sont contraires.

  2. Tour 1 : m=1+22=1,5m = \dfrac{1+2}{2} = 1{,}5 et f(1,5)=2,25−2=0,25>0f(1{,}5) = 2{,}25 - 2 = 0{,}25 > 0. Le signe change entre 11 et 1,51{,}5, donc le nouvel intervalle est [1 ; 1,5][1\,;\,1{,}5].

  3. Tour 2 : m=1+1,52=1,25m = \dfrac{1+1{,}5}{2} = 1{,}25 et f(1,25)=1,5625−2=−0,4375<0f(1{,}25) = 1{,}5625 - 2 = -0{,}4375 < 0. Le signe change entre 1,251{,}25 et 1,51{,}5, donc l'intervalle devient [1,25 ; 1,5][1{,}25\,;\,1{,}5].

  4. Tour 3 : le milieu est m=1,25+1,52=1,375m = \dfrac{1{,}25 + 1{,}5}{2} = 1{,}375.

Après deux tours, la solution est encadrée par [1,25 ; 1,5][1{,}25\,;\,1{,}5] et le milieu suivant est 1,375. La largeur est passée de 1 à 0,25, soit 122\frac{1}{2^2} comme prévu.

Quiz

6 questions · correction immédiate · ton score reste sur ton appareil.

  1. Dans un algorithme de seuil, on cherche le premier rang nn tel que un>Su_n > S pour une suite croissante. Quelle condition de boucle faut-il écrire ?

  2. Que signifie « procéder par dichotomie » ?

  3. Une dichotomie sur une liste fonctionne correctement même si la liste n'est pas triée.

  4. On applique une dichotomie sur un intervalle de largeur 88. Quelle est la largeur de l'intervalle après 3 étapes ?

  5. Quelles instructions rendent une boucle while susceptible de ne jamais s'arrêter ? (plusieurs réponses)

    Plusieurs réponses possibles.

  6. Quand on double la longueur d'une liste, que devient le temps d'un parcours séquentiel, de complexité linéaire ?

Les questions qu'on se pose

Quelle est la différence entre une boucle for et une boucle while ?

Une boucle for répète un nombre de fois connu à l'avance. Une boucle while continue tant qu'une condition est vraie, sans que le nombre de tours soit fixé 2. Pour un seuil ou une précision à atteindre, on utilise while.

Comment savoir quelle condition mettre dans le while d'un seuil ?

Écris d'abord l'objectif en français (« un>500u_n > 500 »), puis prends sa négation : la boucle continue tant que l'objectif n'est pas atteint (u <= 500). Vérifie ensuite le choix entre inégalité stricte et large en relisant l'énoncé.

Pourquoi la dichotomie est-elle plus rapide qu'un parcours complet ?

Un parcours séquentiel a une complexité linéaire : le temps double quand la liste double 2. La dichotomie élimine la moitié des possibilités à chaque tour. Pour 1 000 éléments, une dizaine de tours suffisent, car 210=1 0242^{10} = 1\,024.

Que renvoyer à la fin d'une dichotomie : a, b ou le milieu ?

Cela dépend de la consigne. La fonction du cours renvoie le couple (a,b)(a, b), qui encadre la solution. Si l'énoncé demande une valeur approchée à ee près, n'importe quelle borne convient, puisque la largeur est inférieure à ee. Lis toujours la question pour savoir ce qu'on attend.

Sources

Programme visé : Programme de spécialité de mathématiques de terminale générale · education.gouv.fr

  1. Programme de spécialité de mathématiques de terminale générale, education.gouv.fr. Consulté le 7 novembre 2026.
  2. Ressource Éduscol - Approche par dichotomie et algorithmes, eduscol.education.fr. Consulté le 7 novembre 2026.
  3. Diaporama Algorithmique - Ressources Lycée, ac-strasbourg.fr. Consulté le 7 novembre 2026.
  4. Algorithme TCP, Wikipédia. Consulté le 7 novembre 2026.

Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2 Bientôt
  • CM1 Bientôt
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page