Un cap pour ce chapitre
Ce que vous saurez faire
- Décomposer une fraction simple en puissances négatives de deux
- Expliquer une erreur d’arrondi sans apprendre toute la norme IEEE
- Choisir une comparaison adaptée à un résultat approché
Les bases utiles pour commencer
Après la virgule, les poids continuent
En décimal, les chiffres après la virgule portent les poids un dixième, un centième, etc. En binaire, les poids deviennent 1/2, 1/4, 1/8, 1/16, et ainsi de suite. Le nombre 0,101 en base deux vaut donc 1/2 + 1/8 = 0,625 en décimal. Un nombre comme 0,25 possède une écriture binaire courte : 0,01. La présence d’une virgule ne signifie donc pas automatiquement qu’une approximation est nécessaire. Tout dépend de la possibilité de représenter la valeur avec un nombre fini de positions dans la base choisie.
Chaque position ajoutée après la virgule divise le poids précédent par deux. Le quatrième bit pèse un seizième et le cinquième un trente-deuxième. Ajouter un zéro final ne change pas la valeur ; ajouter un un ajoute exactement le poids de cette nouvelle position.
Une écriture finie dans une base peut être infinie dans une autre
Le nombre un tiers possède une écriture décimale périodique. De façon analogue, un dixième ne possède pas d’écriture binaire finie. Pour produire ses bits fractionnaires, on multiplie la partie fractionnaire par deux, on retient la partie entière obtenue, puis on recommence avec le reste. Pour 0,1, ce processus fait apparaître une répétition. Une mémoire finie ne peut pas conserver tous les bits : elle retient une représentation proche selon une règle d’arrondi. Le nombre mémorisé et le nombre mathématique visé ne sont alors pas strictement identiques.
Pour une fraction réduite, une écriture binaire finie est possible lorsque le dénominateur est une puissance de deux. Trois huitièmes convient ; un dixième conserve un facteur cinq au dénominateur et ne convient pas. Ce critère explique les exemples sans imposer de mémoriser leurs suites infinies.
Un flottant conserve une précision limitée
L’idée d’un flottant ressemble à une notation scientifique : une partie significative est combinée à une échelle. Cela permet de représenter des valeurs très petites ou très grandes, avec un nombre limité de chiffres significatifs. Le détail complet de la norme IEEE 754 n’est pas exigé en Première. Il faut surtout comprendre que les valeurs disponibles sont espacées et que l’écart dépend de leur grandeur. Ajouter une toute petite quantité à un très grand nombre peut ainsi ne pas modifier sa représentation, si cette quantité est plus petite que la précision disponible.
L’atelier utilise une grille fixe de valeurs fractionnaires : avec quatre bits, les valeurs disponibles sont des multiples de un seizième. Ce modèle aide à comprendre la perte de précision, mais il ne simule pas la variation d’échelle d’un véritable flottant.
Comparer selon la précision utile
Pour un résultat approché, tester une égalité stricte peut rejeter deux valeurs suffisamment proches pour le problème. On peut examiner abs(a - b) < tolerance, en choisissant une tolérance justifiée par l’application. Une tolérance relative peut aussi être utile lorsque les ordres de grandeur varient beaucoup ; math.isclose propose ces paramètres. Il ne faut pas remplacer toute comparaison par une marge arbitraire : les entiers exacts se comparent normalement. Pour l’argent, compter des centimes entiers évite certaines difficultés lorsque les montants et opérations s’y prêtent.
a = 0.1 + 0.2
b = 0.3
print(a == b)
print(abs(a - b) < 1e-12)La tolérance possède une unité et un sens. Pour une longueur en mètres, une marge de 0,001 représente un millimètre. Si les données sont exprimées en kilomètres, garder le même nombre changerait fortement la précision. Il faut convertir la marge avec les données.
Tronquer et arrondir répondent à deux règles
Avec quatre bits fractionnaires, un dixième se trouve entre un seizième, soit 0,0625, et deux seizièmes, soit 0,125. La troncature garde la valeur inférieure 0,0625. L’arrondi au plus proche choisirait 0,125, dont l’écart 0,025 est plus petit que 0,0375. Les deux méthodes utilisent la même largeur, mais ne produisent pas la même approximation.
Pour une fraction positive, l’erreur d’une troncature après n bits est strictement inférieure au poids 2 ** (-n). Cette borne provient des bits supprimés. Augmenter n resserre la borne, sans rendre nécessairement exacte une fraction dont l’écriture binaire est infinie.
Séparer affichage, stockage et décision
Un affichage limité à deux décimales peut montrer 0,30 alors que la valeur stockée conserve une approximation plus détaillée. Modifier l’affichage n’améliore pas le calcul effectué. La décision doit utiliser un critère adapté : comparaison exacte pour un nombre d’objets, écart toléré pour une mesure approchée.
Pour additionner 125, 250 et 75 centimes, les entiers donnent exactement 450 centimes. Si l’on applique ensuite un pourcentage, il faut encore définir comment arrondir au centime. Choisir une unité entière résout certaines erreurs de représentation ; cela ne décide pas les règles de calcul du problème.
À vous de faire varier les choses
Combien de bits pour approcher une fraction ?
Choisissez une fraction et le nombre de positions conservées. Comparez la troncature binaire au nombre visé ; ce modèle illustre la précision, pas le format IEEE complet.
Lire le résultat de l’expérience initiale
0,0001₂ = 0.0625
Il reste une fraction non nulle. La troncature conserve une valeur inférieure au nombre visé.
| Position | Bit | Poids | Somme partielle |
|---|---|---|---|
| 1 | 0 | 1/2 | 0 |
| 2 | 0 | 1/4 | 0 |
| 3 | 0 | 1/8 | 0 |
| 4 | 1 | 1/16 | 0.0625 |
Augmenter la précision réduit l’erreur, mais une écriture infinie ne devient pas finie simplement parce que l’on conserve davantage de bits.
De la compréhension à l’autonomie
À vous de résoudre
Cherchez d’abord par vous-même. Vérifiez les résultats demandés, utilisez les indices si nécessaire, puis comparez votre méthode à la correction.
Une fraction exacte
Convertissez 0,011₂ en décimal. Pourquoi cette valeur peut-elle être représentée exactement avec trois positions binaires après la virgule ?
Indice 1
Les trois poids sont 1/2, 1/4 et 1/8.
Indice 2
Seuls les deux derniers bits contribuent.
Comprendre la correction
La valeur est 1/4 + 1/8 = 3/8 = 0,375. Son écriture binaire s’arrête après trois positions : aucun bit supplémentaire n’est nécessaire. Elle peut donc être représentée exactement dans un format disposant de ces positions et d’un domaine suffisant, contrairement à une fraction comme un dixième.
Tronquer une représentation
On approxime un tiers en conservant seulement les quatre premiers bits après la virgule : 0,0101₂. Donnez la valeur obtenue et le sens de l’erreur.
Indice 1
Additionnez les poids 1/4 et 1/16.
Indice 2
La troncature supprime des contributions positives restantes.
Comprendre la correction
0,0101₂ vaut 1/4 + 1/16 = 5/16 = 0,3125. Cette approximation est inférieure à 1/3, proche de 0,3333. L’erreur exacte vaut 1/3 - 5/16 = 1/48. Il s’agit ici d’une troncature pédagogique ; un format flottant peut employer une autre règle d’arrondi.
Une comparaison trop stricte
Un calcul de longueur renvoie 2.9999999999999996 alors que l’on attend mathématiquement 3. Proposez une comparaison avec une tolérance absolue de 10 puissance -10.
Indice 1
Calculez la valeur absolue de la différence.
Indice 2
Le test doit porter sur l’écart, pas arrondir arbitrairement l’affichage.
Comprendre la correction
On peut écrire abs(longueur - 3) < 1e-10. L’écart observé est très inférieur à cette tolérance, donc le test accepte le résultat. Cela ne prouve pas que tout calcul est correct : la tolérance doit correspondre à la précision requise et ne pas masquer une erreur algorithmique beaucoup plus grande.
Les centimes comme entiers
Pour additionner trois achats de 1,20 €, 2,35 € et 0,45 €, proposez une représentation entière et donnez le résultat.
Indice 1
Choisissez le centime comme unité de stockage.
Indice 2
Convertissez chaque montant avant l’addition.
Comprendre la correction
On stocke 120, 235 et 45 centimes. La somme entière vaut 400 centimes, soit 4,00 €. Les additions portent alors sur des entiers exacts. Cette méthode est adaptée à ces montants, mais des calculs de pourcentage peuvent encore nécessiter une règle explicite pour arrondir au centime.
Deux approximations sur la même grille
Avec quatre bits fractionnaires, les voisins de 0,1 sont 0,0625 et 0,125. Calculez leurs écarts absolus. Donnez la troncature et l’arrondi au plus proche, puis expliquez pourquoi leurs erreurs n’ont pas le même signe.
Indice 1
La troncature retient le voisin inférieur.
Indice 2
Comparez les distances au nombre visé.
Comprendre la correction
Les écarts absolus sont 0,0375 et 0,025. La troncature donne 0,0625, en dessous de la cible. L’arrondi au plus proche donne 0,125, au-dessus. La largeur seule ne définit donc pas une approximation : la règle d’arrondi doit être annoncée.
Une fraction exacte au bon endroit
Écrivez sept huitièmes en binaire. Donnez sa troncature sur deux bits puis sur trois bits fractionnaires et calculez l’erreur dans les deux cas. Expliquez pourquoi un quatrième bit est inutile ici.
Indice 1
Sept huitièmes est la somme de un demi, un quart et un huitième.
Indice 2
Le troisième bit contient la dernière contribution non nulle.
Comprendre la correction
La représentation est 0,111 en binaire. Sur deux bits, on conserve 0,11, soit 0,75, et l’erreur vaut 0,125. Sur trois bits, on obtient exactement 0,875 et une erreur nulle. Les bits suivants sont tous nuls, contrairement au développement de un dixième.
Une tolérance qui doit suivre l’unité
Une longueur attendue de 2 mètres est acceptée si l’écart est strictement inférieur à 0,001 mètre. Testez 2,0006 puis 2,002 mètres. Convertissez ensuite la cible et la tolérance en millimètres. Distinguez ce test d’un arrondi d’affichage.
Indice 1
Un mètre vaut mille millimètres.
Indice 2
La marge doit être multipliée par le même facteur que la mesure.
Comprendre la correction
Les écarts valent 0,0006 et 0,002 mètre : la première mesure est acceptée, la seconde refusée. En millimètres, la cible vaut 2000 et la tolérance un. Arrondir l’affichage pourrait masquer un écart, mais ne remplace pas la comparaison de la valeur stockée à la cible.
Les erreurs qui méritent un détour
- Croire que tous les décimaux sont approchés
- Des fractions comme 1/2, 1/4 et 3/8 possèdent une écriture binaire finie.
- Confondre affichage arrondi et valeur mémorisée
- Afficher moins de chiffres ne modifie pas nécessairement la valeur sur laquelle le programme calcule.
La fiche à garder
L’essentiel à retenir
- Une représentation finie ne couvre pas tous les nombres réels.
- La base explique pourquoi 0,1 pose une difficulté particulière.
- Une tolérance se choisit selon le problème.
Cette notion au bac
Retrouvez ces idées dans un sujet complet, avec des indices, une correction expliquée et des ateliers.
Le prochain pas
Retrouver le catalogue de Première
Ce chapitre s’appuie sur le programme officiel de Première (PDF, nouvel onglet). Les explications et exercices sont proposés pour l’apprentissage.
