Adloun

Corrigé CCINP 2026 Informatique MPI — Partie II (II.1) (Q23 à Q29) : Suite de Prouhet-Thue-Morse : quatre définitions équivalentes

Sujet officiel du concours CCINP, session 2026, épreuve Informatique MPI. Corrigé rédigé par Ibrahim Alame.

Sujet officiel (PDF, site du concours)

Énoncé

, le mot vide, la longueur, « . » la concaténation, le mot où l'on échange et . On note le -ième terme de la suite PTM et (ses premiers termes). Langage imposé : OCaml.

Définition 1. Si en base 2 et , alors et, pour , si est impair, sinon.
Q23. Donner .
Q24. Écrire une fonction récursive compte_bits_a_un : int -> int (nombre de bits à de ).
Q25. En déduire affiche_ptm : int -> unit qui affiche , avec une fonction récursive puissance2 : int -> int () et print_int.

Définition 2. et , c'est-à-dire pour .
Q26. Montrer par récurrence qu'elle donne la même suite que la définition 1.

Définition 3. et, pour , et .
Q27. Montrer qu'elle donne la même suite que la définition 1 ou 2.

Définition 4. Un morphisme de vérifie et ; on prend , , et , .
Q28. Montrer que pour tout .
Q29. Les mots sont des int list. Écrire thue_morse_4 : int -> int list (), à l'aide d'une fonction récursive morphisme : int list -> int list qui lève l'exception INVALID_ARGUMENT si le mot n'est pas binaire.

Corrigé

On note . La définition 1 se résume en pour tout , y compris ().

Q23. Pour : , donc et

Q24. Le bit de poids faible de est , et les autres bits de sont ceux de (quotient entier).


let rec compte_bits_a_un n =
  if n = 0 then 0
  else n mod 2 + compte_bits_a_un (n / 2)

Précondition . Correction par récurrence forte : si alors , donc . Terminaison : pour , . Le nombre d'appels est le nombre de chiffres binaires de , soit pour . Exécuté : pour .

Q25.


let rec puissance2 n =
  if n = 0 then 1 else 2 * puissance2 (n - 1)

let affiche_ptm n =
  for i = 0 to puissance2 n - 1 do
    print_int (compte_bits_a_un i mod 2)
  done

puissance2 vérifie et (terminaison : décroît strictement) ; une exponentiation rapide serait ici sans objet, le coût étant dominé par l'affichage. La boucle affiche pour de à , c'est-à-dire . Coût : appels à compte_bits_a_un, chacun en appels puisque a au plus chiffres, soit . Exécuté : affiche_ptm 3 imprime 01101001 et affiche_ptm 0 imprime 0.

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, gratuitement

Inscription gratuite en 30 secondes (e-mail, nom d'utilisateur, mot de passe, classe ou profil), sans carte bancaire : arrivée directe sur le corrigé.

Toutes les parties de l'épreuve

Corrigé complet gratuit →