DM6* `A bas la monotonie

publicité
DM6*
MPSI2
Pour le vendredi 16 décembre 2016
À bas la monotonie !
Ce devoir est facultatif, il est à rédiger à deux. Vous pouvez me rendre une rédaction de votre travail même si
vous n’avez pas traité l’intégralité du devoir.
Introduction
Tous les matins, au petit déjeuner, Margot a le choix entre café ou thé. Le problème est qu’elle déteste la monotonie
et aimerait faire ce choix sans que jamais la même séquence ne se répète trois fois de suite. Voici une solution pour
32 matinées en notant par la lettre C le café et T le thé :
CT T CT CCT T CCT CT T CT CCT CT T CCT T CT CCT
Vous pouvez vérifier :
I qu’aucune lettre ne se répète trois fois de suite,
I qu’aucune séquence de deux lettres : T T, CC, T C ou CT ne se répète trois fois de suite,
I qu’aucune séquence de trois lettres : T T T, T T C, T CT, T CC, CT T, CT C, CCT ou CCC ne se répète
trois fois de suite,
I et ainsi de suite : qu’aucune séquence de k lettres ne se répète trois fois de suite, ceci quelque soit k ∈ N∗ .
Plusieurs questions se posent :
(i) Comment cette séquence a-t-elle été construite ?
(ii) Peut-on la poursuivre indéfiniment ?
(iii) Comment démontrer qu’aucune séquence ne se répète trois fois de suite ?
(iv) Finalement, Margot préfère-t-elle le café ou le thé ?
À la fin du problème, vous connaı̂trez les réponses à ces questions, mais avant commençons par quelques généralités
sur la combinatoire des mots.
Notations
Soit A un ensemble fini non vide appelé alphabet, les éléments de A sont appelés les lettres. Pour n ∈ N∗ , un mot
de longueur n sur [
l’alphabet A est un élément de An , c’est-à-dire un n-uplet d’éléments de A.
On note M =
An , l’ensemble des mots sur l’alphabet A. La longueur d’un mot u de M sera notée |u|.
n≥1
On définit sur M une loi de composition interne appelée concaténation de la manière suivante : si u = (u1 , u2 , ..., un )
et v = (v1 , v2 , ..., vp ) sont des mots de longueurs respectives n et p, alors le mot uv est le mot (u1 , u2 , ..., un , v1 , v2 , ..., vp )
de longueur n + p.
Un mot infini sur l’alphabet A est une suite x = (xn )n≥0 de lettres de A. Si x est un tel mot, pour tout entier
k ≥ 1, [x]k désigne le mot de longueur finie obtenu en gardant les k premières lettres de x. On note M ∞ l’ensemble
des mots infinis sur l’alphabet A.
Voici un exemple pour comprendre ces notions, prenons A = {a, b} un alphabet contenant deux lettres a et b. Les
mots u = (a, b, b) et v = (a, b, a, b) sont des mots sur l’alphabet A de longueurs respectives |u| = 3 et |v| = 4. La
concaténation de u et v est égale à uv = (a, b, b, a, b, a, b). On peut tronquer le mot v, par exemple [v]2 = (a, b).
Informatique
Les questions précédées du symbole sont des questions d’informatique, elle sont à résoudre à l’aide du langage
Python. Vous pouvez écrire vos programmes sur votre copie ou joindre une impression de vos fichiers. Vous pouvez
représenter les mots en Python, soit à l’aide d’une chaı̂ne de caractère, soit à l’aide d’une liste dont les éléments sont
les lettres du mot.
La question 6.(d) de la partie A est difficile et peut être omise dans une première approche du problème. La
question 4.(a) de la partie D est également ardue mais c’est le coeur du problème !
MPSI2
DM6*
Pour le vendredi 16 décembre 2016
A-Combinatoire des mots
On note p ≥ 1 le cardinal de A et n un entier naturel non nul.
1. Combien y-a-t-il de mots de longueur n sur A ?
2. Combien y-a-t-il de mots de longueur n formés de lettres distinctes ?
3. (a) Si u = (u1 , u2 , ..., un−1 , un ) ∈ M , on note ũ = (un , un−1 , ..., u2 , u1 ). On dit que u est un palindrome si et
seulement si u = ũ. Combien y-a-t-il de palindromes de longueur n ?
(b) Écrire un programme en Python qui teste si un mot de longueur n est un palindrome.
4. Combien y-a-t-il de mots de n lettres sans que deux lettres consécutives soient identiques ? On pourra par
exemple procéder par récurrence sur la longueur d’un mot.
5. Soient a1 , ..., ap des lettres distinctes de A et (α1 , ..., αp ) ∈ Np avec n = α1 + ... + αp . Combien y-a-t-il de mots
de n lettres contenant exactement αi fois la lettre ai , pour tout i ∈ J1, pK ?
6. Dans cette question, on se place sur l’alphabet A = {a, b}. On note Γn l’ensemble des mots sur l’alphabet A de
longueur 2n où n ∈ N∗ composés de n lettres a et n lettres b et tels que pour tout k ∈ J1, 2nK le mot tronqué
[u]k possède autant ou plus de a que de b. On note Cn le cardinal de Γn .
(a) Expliciter tous les mots de Γn pour n = 1, n = 2 et n = 3. En déduire C1 , C2 , C3 .
(b) Écrire un programme en Python qui teste si un mot de longueur 2n est dans Γn .
(c) Écrire un programme en Python qui étant donné un entier naturel n renvoie tous les mots de Γn . On
fera une impression du résultat pour Γ4 et Γ5 .
1
2n
(d) Démontrer que pour tout n ∈ N∗ , on a Cn =
.
n+1 n
B-Relation d’ordre sur M
La concaténation est une loi clairement associative, cependant M ne possède pas d’élément neutre pour cette loi.
On crée artificiellement un tel élément, que nous appellerons le mot vide et que nous noterons e, par définition on a
|e| = 0. Dans la suite, on note encore M l’ensemble des mots auquel on a ajouté le mot vide. Ainsi pour tout élement
u ∈ M , on a : ue = eu = u.
1. Soit (u, x) ∈ M 2 , on dit que u est un préfixe de x si et seulement s’il existe v ∈ M tel que x = uv. Si tel est le
cas, on écrira u x.
(a) Montrer que est une relation d’ordre sur M .
(b) Soit (u, v) ∈ M 2 , avec u v, montrer que |u| ≤ |v|. La réciproque est-elle vraie ?
(c) Pour cette relation d’ordre M possède-t-il un minimum ? un maximum ?
2. Soient (u, v, x) ∈ M 3 , tels que u x et v x, montrer que l’on a u v ou v u.
3. Soit (un )n≥0 une suite d’élément de M , strictement croissante pour .
(a) Montrer que la suite (|un |)n≥0 est strictement croissante.
(b) Montrer qu’il existe un unique mot infini x = (xk )k≥0 ∈ M ∞ tel que pour tout n ≥ 0, [x]|un | = un . On dira
que x est la limite de la suite (un )n≥0 et on écrira x = lim un .
n→+∞
4. Soit X un monoı̈de et e son élément neutre, on dit que f : X → X est un morphisme de monoı̈de si et seulement
si f (e) = e et pour tout (u, v) ∈ X 2 , f (uv) = f (u)f (v).
(a) Dans cette question uniquement, on prend A = {a, b, c} et g : A → M définie par g(a) = (c, a), g(b) = b et
g(c) = (c, c, c). Expliquer comment construire un morphisme de monoı̈de f , de M dans M tel que f|A = g.
Quelle est l’image par f de u = (a, b, c) ? de v = (a, a, c, c, b) ?
DM6*
MPSI2
Pour le vendredi 16 décembre 2016
(b) Revenons au cas général en considérant g : A → M une application quelconque. Montrer qu’il existe un
unique morphisme de monoı̈de f : M → M tel que f|A = g.
C-Trois exemples
Dans toute la suite du problème, on prendra comme alphabet A = {a, b}. On s’autorisera à noter un mot de façon
concaténée, par exemple le mot u = (a, b, b, a, a, a) pourra s’écrire plus simplement abbaaa.
1. Soit (un )n≥0 la suite de mots définie par récurrence par u0 = ab et un+1 = un un pour tout n ∈ N.
(a) Expliciter u1 , u2 et u3 . Calculer la longueur de un pour tout n ∈ N.
(b) Montrer que la suite (un ) est strictement croissante et préciser sa limite.
2. Soit (φn )n≥0 la suite de mots définie par récurrence par φ0 = a, φ1 = ab et φn+2 = φn+1 φn pour tout n ∈ N.
(a) Expliciter φ2 , φ3 et φ4 .
(b) Écrire un programme en Python qui étant donné un entier naturel n renvoie φn .
(c) Donner une relation de récurrence vérifiée par la suite (|φn |) et montrer qu’elle est strictement croissante.
(d) En déduire que la suite (φn )n≥0 est strictement croissante. Sa limite est appelée mot de Fibonacci.
3. Soit µ l’unique morphisme de monoı̈de de M dans M défini par µ(a) = ab et µ(b) = ba. Par exemple si l’on
considère le mot u = abbab, on a µ(u) = (ab)(ba)(ba)(ab)(ba) = abbabaabba, on a remplacé a par ab et b par ba
pour obtenir l’image de u par µ.
On définit la suite de mots (τn )n≥0 par récurrence par : τ0 = a et τn+1 = µ(τn ) pour tout n ∈ N.
(a) Expliciter τ1 , τ2 , τ3 et τ4 . Calculer la longueur de τn .
(b) Écrire un programme en Python qui étant donné un entier naturel n renvoie τn .
(c) Montrer que la suite (τn )n≥0 est strictement croissante. Sa limite est notée t = t0 t1 t2 ... = (tk )k≥0 .
C’est ce mot qui répond à la question de l’énoncé, nous allons l’étudier plus en détail dans la partie suivante.
D-Réponse au problème initial
Pour tout w ∈ M , on note w le mot obtenu en remplaçant dans w la lettre a par b et la lettre b par a.
1. Montrer que pour tout w ∈ M , µ(w) = µ(w).
2. Soit (xn )n≥0 et (yn )n≥0 les suites de mots définies par x0 = a, y0 = b et pour tout n ∈ N, xn+1 = xn yn ,
yn+1 = yn xn .
(a) Démontrer que pour tout n ∈ N, on a : τn+1 = τn τn .
(b) En déduire que pour tout n ∈ N, xn = τn et yn = τn .
(c) Montrer que x2n et y2n sont des palindromes et que x̃2n+1 = y2n+1 .
(d) Combien y-a-t-il de a et de b dans le mot τn , où n ∈ N ?
(e) Écrire un programme en Python qui vérifie le résultat de la question précédente.
3. (a) Montrer que tn = a (respectivement tn = b) si et seulement si l’écriture binaire de n comporte un nombre
pair (respectivement impair) de 1. Que vaut t100 ?
(b) Écrire un programme en Python qui vérifie le résultat de la question précédente.
4. On dit qu’un mot non vide u ∈ M est un facteur cube d’un mot x ∈ M si et seulement s’il existe deux mots
(v, w) ∈ M 2 tels que x = vuuuw.
(a) Montrer que si x est un mot sans facteur cube, alors µ(x) est également sans facteur cube.
(b) En déduire que le mot t ne contient pas trois facteurs finis consécutifs identiques.
Téléchargement