E3A Option Informatique MP 2013Sujet
Pas encore noté
Téléchargements
- Corrigé : pas encore disponible
- Rapport du jury : non disponible
Ces sujets peuvent vous intéresser
Pas encore de corrigé pour ce sujet : voici des sujets proches corrigés.
Lecture du sujet en ligne
L'énoncé complet, avec les formules et les figures, sans ouvrir le PDF.Afficher ou masquer la section
Lecture du sujet en ligne
L'énoncé complet, avec les formules et les figures, sans ouvrir le PDF.
CONCOURS ARTS ET MÉTIERS ParisTech - ESTP - ARCHIMEDE
Durée 3 h
Si, au cours de l'épreuve, un candidat repère ce qui lui semble être une erreur d'énoncé, d'une part il le signale au chef de salle, d'autre part il le signale sur sa copie et poursuit sa composition en indiquant les raisons des initiatives qu'il est amené à prendre.
L'usage de calculatrices est interdit.
AVERTISSEMENT
Indiquer en tête de copie ou de chaque exercice le langage utilisé
Quel que soit le langage utilisé, le candidat pourra supposer qu'il dispose d'une fonction test_liste_vide qui prend en entrée une liste et renvoie le booléen 1 si la liste est vide et 0 sinon.
Le candidat pourra, s'il le juge utile, supposer que chaque liste se termine par un élément de marquage de fin de liste appelé
NIL .
La présentation, la lisibilité, l'orthographe, la qualité de la rédaction, la clarté et la précision des raisonnements entreront pour une part importante dans l'appréciation des copies. En particulier, les résultats non justifiés ne seront pas pris en compte. Les candidats sont invités à encadrer les résultats de leurs calculs.
Exercice 1
Soit
L un tableau non vide rempli avec des entiers naturels. Une pente positive (respectivement une pente négative) de longueur
l est une suite de
l indices consécutifs
i, i + 1, …, i + l − 1 sur lesquels
L prend des valeurs croissantes
L[i] ≤ L[i + 1] ≤ ⋯ ≤ L[i + l − 1], ( respectivement des valeurs décroissantes:
L[i] ≥ L[i + 1] ≥ ⋯ ≥ L[i + l − 1]) .
- Ecrire la fonction :
MAXPENTEPOS données L:tableau d'entiers naturels
résultat l:entier naturel
qui prend en entrée un tableau d'entiers naturels et renvoie la plus grande longueur de ses pentes positives.
2. Ecrire la fonction :
2. Ecrire la fonction :
MAXPENTE données L:tableau d'entiers naturels
résultat l:entier naturel
qui prend en entrée un tableau d'entiers naturels et renvoie la plus grande longueur de ses pentes (qu'elles soient positives ou négatives).
Exercice 2
Soit
T un tableau de nombres entiers relatifs dont les cases sont numérotées de 1 à
N ⩾ 1 . Si
k et
l sont deux entiers naturels tels que
1 ⩽ k ⩽ l ⩽ N , on note
T[k⋯l] le sous-tableau formé par les cases de
T de
k à
l ; on appelle sous-somme de
T de la case
l à la case
m , et on note
σ_(k → l)(T) , la somme des valeurs consécutives du sous-tableau
T[k⋯l] , c'est-à-dire
σ_(k → l)(T) = T[k] + T[k + 1] + ⋯ + T[l] . On cherche la valeur maximale de toutes les sous-sommes de
T . On se propose d'étudier différents algorithmes de résolution de ce problème.
- Ecrire la fonction :
CUMUL données N:entier
T: tableau d'entiers de longueur N
résultat U:tableau d'entiers de longueur N
qui prend en entrée un tableau
T d'entiers de longueur
N et renvoie un tableau d'entiers de longueur
N dont la
k -ième case contient la sous-somme
σ_(1 → k)(T) , pour
k compris entre 1 et
N . On précisera la complexité de cet algorithme.
2. Ecrire la fonction :
2. Ecrire la fonction :
MAXSOMME données N:entier
T: tableau d'entiers de longueur N
résultat k:entier
qui prend en entrée un tableau
T de longueur
N et renvoie une sous-somme maximale parmi les soussommes de ce tableau. On précisera la complexité de cet algorithme et on cherchera à minimiser cette complexité.
3. Une seconde méthode est basée sur le principe "diviser pour régner" : on divise le tableau en deux soustableaux de tailles presque égales. Proposer un algorithme récursif qui prend en entrée un tableauT de nombres entiers relatifs et calcule le quadruplet (
S, MS_G, MS, MS_D ) tel que : Si
T est un tableau à
N cases numérotées de 1 à
N ⩾ 1 ,
3. Une seconde méthode est basée sur le principe "diviser pour régner" : on divise le tableau en deux soustableaux de tailles presque égales. Proposer un algorithme récursif qui prend en entrée un tableau
-
S est la sommeσ_(1 → N)(T) , -
MS_G est le maximum des sous-sommesσ_(1 → l)(T) , pourl compris entre 1 etN , -
MS est le maximum des sous-sommesσ_(k → l)(T) , pourk etl entiers tels que1 ⩽ k ⩽ l ⩽ N , -
MS_D est le maximum des sous-sommesσ_(k → N)(T) , pourk compris entre 1 etN .
Quelle est la complexité de l'algorithme proposé?
Exercice 3
Les deux parties de cet exercice sont indépendantes.
- On dispose d'une fonction ECHANGER qui prend en entrée un tableau
T d'entiers naturels et deux indicesI, J , compris entre 1 et la longueur du tableauT , et échange les contenus des casesI etJ dans le tableau.
On considère l'algorithme écrit en pseudo-langage:
PROC1 données $T$ : tableau[1..N] de 0,1
variables $\quad I, J$ :entiers
$I \leftarrow 1$
$J \leftarrow N$
tant que $I<J$ faire
si $T[I]=0$ alors $I \leftarrow I+1$
sinon ECHANGER $(T, I, J) ; J \leftarrow J-1$
fin si
fin faire
(a) Que fait ce programme sur le tableau
[1, 0, 1, 0, 1, 0] ? Détailler son exécution.
(b) Démontrer que ce programme termine.
(c) Quel est le but de ce programme ? Le démontrer précisément.
(d) Proposer une implémentation de l'algorithme ci-dessus en remplaçant la boucle par une procédure récursive.
(e) Proposer un programme pour la fonction ECHANGER qui n'utilise pas une variable supplémentaire.
2. On dispose de deux fonctions:
(b) Démontrer que ce programme termine.
(c) Quel est le but de ce programme ? Le démontrer précisément.
(d) Proposer une implémentation de l'algorithme ci-dessus en remplaçant la boucle par une procédure récursive.
(e) Proposer un programme pour la fonction ECHANGER qui n'utilise pas une variable supplémentaire.
2. On dispose de deux fonctions:
- La fonction par qui prend en entrée un entier naturel et renvoie la valeur 0 si cet entier est pair et 1 si cet entier est impair,
- la fonction ent qui prend en entrée un nombre rationnel et renvoie sa partie entière.
On considère l'algorithme écrit en pseudo-langage:
PROC2 données $I, J$ : entiers
variables $\quad t$ :entier
$t \leftarrow 0$
tant que $I \geq 1$ faire
si $\operatorname{par}(I)=1$ alors $t:=t+J$
fin si
$J \leftarrow 2 * J$
$I \leftarrow \operatorname{ent}(I / 2)$
fin faire
Retourner $t$
(a) Ecrire l'exécution de ce programme sur les entiers
I = 8 et
J = 9 .
(b) Ecrire l'exécution de ce programme sur les entiersI = 9 et
J = 8 .
(c) Que calcule ce programme? Le justifier précisément.
(b) Ecrire l'exécution de ce programme sur les entiers
(c) Que calcule ce programme? Le justifier précisément.
Exercice 4
Soit
Σ un alphabet fini. On note
Σ^∗ l'ensemble des mots finis écrits avec des lettres de
Σ .
On rappelle la définition : Soientu et
v deux mots dans
Σ^∗ . Soient
p, q dans
ℕ et
a_1, …, a_p, b_1, …, b_q dans
Σ tels que
u = a_1…a_p et
v = b_1…b_q . On dit que
u est un facteur de
v si
q ≥ p et s'il existe un entier naturel
r compris entre 0 et
q − p tel que, pour tout
i compris entre 1 et
p, a_i = b_(i + r) .
SoitF_Σ l'ensemble des automates finis
A = (Q, Σ, F, ε, T) tels que :
On rappelle la définition : Soient
Soit
- L'ensemble des états
Q est un ensemble fini, réunion d'un singleton{ε} et d'une partie de l'ensembleΣ . - L'état
ε est l'unique état initial. - L'ensemble
F est une partie deQ désignant l'ensemble des états finals. -
T désigne l'ensemble des transitions. Il vérifie la propriété : Pour toute lettrea dans l'alphabetΣ , les transitions étiquetées par la lettrea ne peuvent aboutir que dans l'étata .
En raison de cette dernière propriété, dans un automate de l'ensemble
F_Σ , l'étiquette d'une transition est déterminée par l'état d'arrivée de la transition. Pour cette raison, si
A = (Q, Σ, F, ε, T) est un automate de l'ensemble
F_Σ , si
a_1, a_2 sont deux lettres de
Σ telle qu'il existe une transition de l'état
a_1 vers l'état
a_2 dans
T , on note
(a_1, a_2) cette transition et son étiquette est alors
a_2 .
Un exemple d'un tel automate sur l'alphabet à trois lettres{a, b, c} est donné par la figure 1. Pour cet automate
A_(ex) = (Q_(ex), {a, b, c}, F_(ex), ε, T_(ex)), Q_(ex) = {ε, a, b, c}, F_(ex) = {a, c} et
T_(ex) = {(ε, a), (a, a), (b, a), (ε, b), (b, b), (c, b), (a, c), (c, c)} .
Un exemple d'un tel automate sur l'alphabet à trois lettres
On note
L(F_Σ) l'ensemble des langages reconnus par les automates de l'ensemble
F_Σ .

Figure 1: L'automate
A_(ex) de l'ensemble
F_({a, b, c}) .
- Dans le cas particulier où
Σ est l'alphabet à une lettre{a} , dresser la liste des (six) langages de l'ensembleL(F_({a})) . Pour chacun d'eux, on dessinera un automate de l'ensembleF_({a}) le reconnaissant. - On considère le cas particulier où
Σ est l'alphabet à trois lettres{a, b, c} .
(a) Démontrer que le langage réduit au singleton{abc} appartient àL(F_({a, b, c})) . On dessinera explicitement un automate dansF_({a, b, c}) qui reconnait le langage (abc ).
(b) Démontrer que le langage(abc)^∗ appartient àL(F_({a, b, c})) . On dessinera explicitement un automate dansF_({a, b, c}) qui reconnait le langage(abc)^∗ . - On revient au cas général. Soit
p un entier naturel≥ 2 . Soitu = a_1 a_2⋯a_p un mot de longueurp dansΣ . On noteL_u le langage réduit au singleton{u} .
(a) On suppose lesp lettresa_1, ⋯, a_p distinctes deux à deux.
i. Démontrer queL_u est dansL(F_Σ) .
ii. Démontrer que(L_u)^∗ est dansL(F_Σ) .
(b) Réciproquement, on suppose que le langageL_u est dansL(F_Σ) . Démontrer que lesp lettresa_1, ⋯, a_p sont distinctes deux à deux. - Démontrer qu'un automate de
F_Σ est un automate déterministe. - Soit
L un langage dansL(F_Σ) reconnu par un automateA = (Q, Σ, F, ε, T) dansF_Σ . Démontrer que le langageL^∗ est dansL(F_Σ) . On pourra utiliser l'automateA pour construire un automate dansF_Σ qui reconnaitL^∗ . - Soient
P etD deux parties deΣ et soitφ une partie formée de mots de longueur 2 . On noteL(P, D, φ) le langage formé par les mots dansΣ^∗ dont la première lettre est dansP , la dernière lettre est dansD et ne contenant aucun facteur de longueur 2 dansφ .
(a) Dans le cas particulier oùΣ est l'alphabet à deux lettres{a, b}, P_0 = {a}, D_0 = {b} etφ_0 = {a^2, b^2} , décrire précisément le langageL(P_0, D_0, φ_0) .
(b) Dans le cas particulier oùΣ est l'alphabet à trois lettres{a, b, c} , déterminerP_1, D_1 etφ_1 tels que(abc)^+ = L(P_1, D_1, φ_1) .
(c) Toujours dans le cas particulier oùΣ est l'alphabet à trois lettres{a, b, c} , déterminerP_(ex), D_(ex) etφ_(ex) tels queL_(ex) = L(P_(ex), D_(ex), φ_(ex)), L_(ex) désignant le langage reconnu par l'automateA_(ex) de la figure 1.
(d) On revient au cas général. Démontrer que le langageL(P, D, φ) est dansL(F_Σ) .
(e) SoitL un langage dansΣ^∗ . On noteP(L) l'ensemble des lettresa dansΣ telle qu'il existe un mot deL dont la première lettre esta . On noteD(L) l'ensemble des lettresa dansΣ telle qu'il existe un mot deL dont la dernière lettre esta . On noteφ(L) l'ensemble complémentaire des facteurs de longueur 2 de mots deL . On suppose queL est un langage dansL(F_Σ) ne contenant pas le mot vide. Démontrer queL = L(P(L), D(L), φ(L)) . - On se donne des lettres
a_1, ⋯, a_p, ⋯ , distinctes deux à deux. On considère les langages définis récursivement par :L_0 = ∅ et,L_i = (L_(i − 1))^∗ a_i , pouri un entier≥ 1 . Soitp un entier≥ 1 .
(a) Démontrer queL_p est un langage deL(F_({a_1, …, a_p})) .
(b) Proposer un algorithme qui prend en entrée l'entier naturelp et retourne un automate deF_({a_1, …, a_p}) qui reconnaitL_p .
s!u.nof słuəunnoop sәุ.dde,a - ztol & 1 - дSIOHJ NI
Pas de description pour le moment
