Devoir 1
IFT2105 Mai 2006
Question 1. Pour un entier positifn∈N, on d´efinit le langage Cn={< x >| x est un multiple de n} ⊂ {0,1}∗ o`u < x >est l’encodage binaire dex∈N.
Montrez que pour tout entier positifn, le langage Cn est r´egulier.
R´eponse : Soit n ∈ N, pour montrer que Cn est r´egulier, il suffit de montrer qu’il existe un AFDAn tel queL(An) =Cn.
Consid´erons x encod´e en binaire par v1v2v3· · ·vl. Posons xi comme l’entier encod´e par les i premiers symboles de< x >, i.e.< xi >=v1v2v3· · ·vi. Alors, on peut d´efinirxi par rapport `axi−1, pour i >1, comme suit :
– Sivi= 0, alors xi= 2·xi−1, – Sivi= 1, alors xi= 2·xi−1+ 1.
De plus, on sait que tout entierxpeut ˆetre ´ecrit sous la forme : x=k·n+r, o`uk∈Net 0≤r < n.
Par exemple, 11 = 2·5 + 1.
On sait qu’un AFD lit son entr´ee de gauche `a droite. Soitrile reste de la division dexiparn. SiAn est capable de calculerri`a partir deri−1, il sera donc capable de d´eciderCn. En effet, commexest un multiple densi et seulement six=k·n.
Il suffit de d´eterminer si le reste de la division de xparnest 0 afin de conclure sixest dansCn.
On remarque que sivi=σ∈ {0,1}, alorsri= 2·ri−1+σ.
En supposant queest un encodage binaire pour 0, il suffit donc queAnposs`ede n´etats (un pour chaque reste possible) afin de pouvoir calculer ri `a partir de ri−1.
SoitAn = ({q0, q1, . . . , qn−1},{0,1}, δ, q0,{q0}) avec δ: Q× {0,1} →Q d´efini parδ(qi, σ) =qj o`uj= (2·i+σ) modulon. Alors on a bien queL(An) =Cn. Il est laiss´e en exercice de montrer par induction, sur la longueur de x que L(An) =Cn.