Adloun

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.