Corrigé Mines-Ponts 2026 Informatique I MPI — Partie 1 (Q1 à Q3) : Puissance rapide et écriture binaire des lettres
Sujet officiel du concours Mines-Ponts, session 2026, épreuve Informatique I MPI. Corrigé rédigé par Ibrahim Alame.
Sujet officiel (PDF, site du concours)
Énoncé
Pour , est l'alphabet des vecteurs colonnes de taille à coefficients dans ; par exemple . Pour un mot sur , (bit de poids faible à gauche). Pour un mot sur , est le mot formé par la ligne de ses lettres et . En OCaml, une lettre de est un int array de taille à valeurs dans ; on suppose les entiers non bornés.
Q1. Écrire une fonction récursive pow2 : int -> int calculant en .
Q2. Exhiber une bijection entre et .
Q3. Écrire decompose : int -> int -> int array qui, pour , renvoie la lettre de associée à par cette bijection, en vérifiant l'entrée par une assertion.
Corrigé
Q1. C'est l'exponentiation rapide : si est pair et si est impair.
let rec pow2 n =
if n = 0 then 1
else
let p = pow2 (n / 2) in
if n mod 2 = 0 then p * p else 2 * p * p
Correction, par récurrence forte sur : pow2 0 vaut ; pour , donc p vaut par hypothèse de récurrence, et donne ou . Terminaison : l'argument, entier naturel, décroît strictement à chaque appel.
Complexité. Les entiers étant supposés non bornés, chaque opération arithmétique compte pour ; un appel fait, hors appel récursif, un nombre borné d'opérations (un test, une division, un reste, au plus deux multiplications). Soit le nombre d'appels déclenchés par pow2 n : et pour . Par récurrence forte, pour : , et pour , si alors , d'où . Chaque appel efface un bit de l'écriture binaire de : le coût total est . Exécutée : pow2 10 = 1024, et pow2 n = 1 lsl n pour tout .
100 % gratuit
La suite du corrigé est sur Adloun
Le corrigé rédigé en entier, question par question, et le tuteur pour poser des questions sur ce sujet.
Voir le corrigé complet, gratuitementInscription gratuite en 30 secondes (e-mail, nom d'utilisateur, mot de passe, classe ou profil), sans carte bancaire : arrivée directe sur le corrigé.