En Python, 100000 100000 vaut
Exercice d'entraînement · niveau 2 · NSI (première), chapitre 1 — Représenter les entiers · Tailles, sommes et produits
Énoncé
En Python, 100000 * 100000 vaut . Combien de bits cela demande-t-il ? Dans un langage où les entiers font bits, quel résultat obtiendrait-on ?
Corrigé
La taille. demande bits : . C'est cohérent avec la proposition du cours : s'écrit sur bits, donc le produit en demande ou .
Sur bits. Le résultat est réduit modulo : . Comme cette valeur est inférieure à , elle est lue comme un entier positif : la machine annonce au lieu de .
Ce qui rend ce cas redoutable. Le résultat est positif, d'ordre de grandeur plausible, et aucune erreur n'est levée. Le test naïf « si le résultat est négatif, c'est qu'il a débordé » ne détecte rien ici.
Contrôle : , donc la réduction modulo a bien eu lieu deux fois.
Prolongement : en Python, ce problème n'existe pas — les entiers y sont de taille arbitraire. Il existe partout ailleurs.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.