Un entier s'écrit avec k chiffres 1 et rien d'autre en base b (par…
Exercice de TD · niveau 2 · NSI (première), chapitre 1 — Représenter les entiers · Écrire un nombre dans une base
Énoncé
Un entier s'écrit avec chiffres et rien d'autre en base (par exemple , ou ). Montrer qu'il vaut , puis vérifier cette formule sur machine pour toutes les bases de à et tous les de à .
Corrigé
La démonstration. Par définition de l'écriture en base , ce nombre vaut
somme des termes d'une suite géométrique de raison .
La vérification. On ne vérifie pas un cas : on les vérifie tous, ce qui est précisément ce que la machine sait faire.
def repunit(k, b):
"""Valeur de l'entier écrit avec k chiffres 1 en base b."""
return (b**k - 1) // (b - 1)
for b in range(2, 17):
for k in range(1, 11):
assert depuis_base("1" * k, b) == repunit(k, b)
Aucune assertion ne se déclenche : cas passent.
Contrôle : , donne , le plus grand entier sur un octet — c'est exactement la proposition « capacité de bits » du cours. Et , donne .
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.