MathLvl
Question transversaleMathsNSIReprésenter l'information

Pourquoi un ordinateur ne peut-il pas représenter tous les nombres réels, et où ses erreurs sont-elles les plus grandes ?

Un flottant s'écrit m × 2^e avec 53 bits de mantisse : l'écart entre deux flottants voisins est relatif, environ 2,2 × 10⁻¹⁶ fois la valeur. Au-delà de 2⁵³, les entiers impairs disparaissent : 2⁵³ + 1 n'existe pas en machine.

Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.

Pourquoi cette question : un modèle d'introduction

Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.

J'ai écrit en Python une boucle qui ajoutait 1 à un très grand nombre, et la valeur ne bougeait plus. J'ai d'abord cru à un bug. En cherchant, j'ai compris que les nombres à virgule de l'ordinateur ne sont pas répartis régulièrement : ils sont serrés près de zéro et de plus en plus espacés quand on s'éloigne. Je voulais comprendre cette répartition.

L'enjeu et les notions du programme

Comprendre l'écriture scientifique en base 2 et montrer qu'une erreur d'arrondi est relative, pas absolue.

Mathématiques

  • Puissances de 2, écriture scientifique (seconde)
  • Ensemble des réels, nombres rationnels et irrationnels (seconde)
  • Valeur absolue, erreur absolue et erreur relative (seconde)

Numérique et sciences informatiques

  • Représentation approximative des nombres réels : notion de nombre flottant (première)
  • Conséquences sur les tests d'égalité (première)

Le plan de l'exposé en 9,5 min

  1. 1. Introduction

    1 min

    Il y a une infinité de réels, mais une mémoire finie : sur 64 bits, il n'y a que 2⁶⁴ motifs. Problématique : quels nombres choisir de représenter, et quelle erreur commet-on sur les autres ?

  2. 2. Mathématiques : une écriture scientifique en base 2

    4 min

    La norme utilisée (double précision) écrit un nombre sous la forme ±1,b₁b₂… b₅₂×2ᵉ : 52 bits après la virgule, donc 53 chiffres significatifs, et un exposant e entre -1022 et 1023.

    Entre 2ᵉ et 2ᵉ⁺¹, il y a donc exactement 2⁵² flottants, régulièrement espacés de 2ᵉ⁻⁵². L'écart double à chaque puissance de 2 : les flottants sont serrés près de 0, espacés au loin. L'erreur relative d'arrondi, elle, reste inférieure à 2⁻⁵³≈1,1×10⁻¹⁶ ; l'écart relatif entre deux voisins est de l'ordre de ε=2⁻⁵²≈2,2×10⁻¹⁶.

    Conséquence : entre 2⁵³ et 2⁵⁴, l'écart vaut 2⁵³⁻⁵²=2. Les entiers impairs n'y sont plus représentables : 2⁵³+1=9 007 199 254 740 993 est arrondi à 2⁵³. C'est ma boucle bloquée.

  3. 3. NSI : programmer avec des flottants

    3 min

    Première règle : ne jamais tester l'égalité de deux flottants, mais un écart, par exemple |a-b|<10⁻⁹ (Python fournit math.isclose). Deuxième règle : se méfier de la soustraction de deux nombres très proches, qui fait perdre des chiffres significatifs.

    Troisième règle : l'ordre des opérations compte. Ajouter un grand nombre de petites quantités à un très grand total peut les faire disparaître ; on additionne d'abord les petits termes entre eux. Pour l'argent, on travaille en centimes entiers, pour éviter que 0,1 (non représentable exactement en base 2) introduise des erreurs.

  4. 4. Conclusion

    1,5 min

    Un ordinateur ne représente qu'un ensemble fini de réels, répartis selon une échelle logarithmique : l'erreur est relative, de l'ordre de 10⁻¹⁶. Près de zéro, c'est minuscule ; vers 10¹⁶, l'écart dépasse 1. J'ouvre sur le calcul formel, qui manipule sqrt2 ou 1/3 exactement.

Ce que j'écris au tableau

Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.

x=±1,b₁… b₅₂×2ᵉ écart entre voisins =2ᵉ⁻⁵²
ε=2⁻⁵²≈2,2×10⁻¹⁶ 2⁵³+1 arrondi à 2⁵³

Conclusion : la réponse à la question

Les flottants sont une écriture scientifique en base 2 à 53 chiffres : leur précision est relative et constante, leur espacement absolu double à chaque puissance de 2. Le savoir permet d'écrire des programmes qui ne se trompent pas silencieusement.

Les questions probables du jury

Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.

Combien y a-t-il de flottants entre 1 et 2 ?

2⁵², environ 4,5×10¹⁵, espacés de 2⁻⁵².

Pourquoi 0,1 n'est-il pas représentable exactement ?

0,1=1/10 et 10 contient le facteur 5 : son écriture en base 2 est infinie et périodique, on doit la tronquer.

Quelle différence entre erreur absolue et erreur relative ?

L'erreur absolue est |x-tilde x|, l'erreur relative (|x-tilde x|)/|x|. Les flottants garantissent une erreur relative bornée.

Comment représenter 2⁵³ + 1 exactement en Python ?

Avec un entier (type int), qui n'a pas de limite de taille, et non un flottant.

Quel est le plus grand flottant double précision, en ordre de grandeur ?

Environ 2¹⁰²⁴≈1,8×10³⁰⁸ ; au-delà, on obtient « inf ».

Les pièges qui coûtent des points

  • Croire que l'erreur d'arrondi est la même partout : elle est relative.
  • Tester x == 0.3 sur un résultat de calcul.
  • Confondre nombre de bits de la mantisse (53 significatifs) et précision en décimales (environ 16).

Revoir les notions

Autres questions : représenter l'information

Toutes les questions maths-nsi →

Préparer l'oral, pas seulement le contenu

Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.

Méthode : traiter une question de Grand oral →