E3A Option Informatique MP 2012Sujet
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
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 encadrés et non justifiés ne seront pas pris en compte.
Indiquer en tête de copie le langage de programmation, Caml ou Pascal, choisi pour l'ensemble du sujet.
- L'épreuve est constituée de cinq exercices totalement indépendants.
- Pour les candidats composant avec Pascal, on suppose disposer de deux types de listes : le type listes d'entiers Liste et le type liste de liste d'entiers Lliste. La liste vide sera représentée pour les deux types par nil et on suppose disposer des fonctions suivantes:
- cons prenant en argument un entier
x et une liste d'entiersl et renvoyant une liste d'entiers dont la tête estx et la queuel . - Icons prenant en argument une liste d'entiers
x et une liste de listes d'entiersl et renvoyant une liste de listes d'entiers dont la tête estx et la queuel . - tete (resp. Itete) qui renvoie la tête d'une liste d'entiers (resp. d'une liste de listes d'entiers).
- queue (resp. Iqueue) qui renvoie la queue d'une liste d'entiers (resp. d'une liste de listes d'entiers).
1 Décompositions rationnelles
On considère un rationnel
x ∈ ]0, 1[ . On note
x = p/q avec
q ⩾ 2 et
0 < p < q . On s'intéresse au problème suivant : peut-on trouver des entiers
2 ⩽ a_1 < a_2 < … < a_n de sorte que :
Par exemple, on a:
On considère pour cela l'algorithme suivant :
[decompose p q=
res:= []
fonction aux a b=
reste:=b mod a
quotient:=b/a
si reste=0 alors add (quotient,res)
sinon add (quotient +1 ,res);aux (a-reste) (b*(quotient +1 ))
fin si
fin fonction
aux p q
renvoyer res
où
bmoda et
b/a désignent le reste et le quotient de la division euclidienne de
b par
a , [ ] désigne la liste vide et la fonction add permet d'ajouter un élément en tête d'une liste.
- Détailler l'exécution de l'algorithme sur les fractions
5/8 et3/7 . - Prouver que l'algorithme ci-dessus termine et majorer sa complexité à l'aide de
p etq . - Prouver que l'algorithme est correct.
- On note, pour
n ⩾ 1 etk ⩾ 1, α_n = n! + 1 etβ_(k, n) = k(n!) + 1 .
(a) Écrire la division euclidienne deβ_(k, n) parn . (On pourra distinguer les casn = 1 etn ≠ 1 .)
(b) Prouver que l'exécution de l'algorithme surp = n etq = β_(k, n) renvoie une liste de longueurn .
(c) En déduire que la décomposition renvoyée par l'algorithme surp = n etq = α_n est de longueurn .
(d) Que peut-on en déduire quant à la complexité de l'algorithme?
2 Calcul des termes d'une suite double
On considère la suite double (
S_n^p ) définie pour
n et
p entiers naturels par :
- Proposer un programme récursif prenant
n etp en argument et renvoyant la valeur deS_n^p . L'usage de variables auxiliaires n'est pas autorisé dans cette question. - On s'intéresse à la complexité en nombre d'additions et de multiplications nécessaires au calcul de
S_n^p par le programme proposé à la question précédente. On noteC(n, p) le nombre d'opérations nécessaires au calcul deS_n^p etC_n = sup_(p ∈ ℕ)C(n, p) ∈ ℕ ∪ { + ∞} .
(a) Déterminer suivantp ∈ ℕ les valeurs deC(0, p) , deC(1, p) et deC(2, p) et en déduire les valeurs deC_0, C_1 etC_2 .
(b) Pourn ∈ ℕ , justifier queC_n est fini et montrer queC_n ⩽ 2^(n + 1) .
(c) Pourp ⩾ n ⩾ 1 , obtenir l'existence d'une constanteβ > 1 telle queC(n, p) ⩾ β^n .
(d) Comment qualifier la complexité de votre programme? - En vous aidant d'un tableau de longueur
p + 1 , écrire une fonction calculantS_n^p enO(np) opérations.
3 Énumération des parties d'un ensemble
Pour
n ∈ ℕ^∗ , on note
E_n l'ensemble
[ [1, n] ] et on pose
E_0 = ∅ . Une partie
A de l'ensemble
E_n est représentée par une liste
[a_1, …, a_p] où :
- (a) Soit
A une partie deE_n représentée par une listel et soitx ∈ E_n . Écrire des fonctions add et sub prenant en argumentl etx et qui renvoient respectivement les listes représentant les partiesA ∪ {x} etA∖{x} .
(b) Écrire des fonctions récursives reunion et intersection prenant en argument deux listesl_1 etl_2 représentant deux partiesA_1 etA_2 de l'ensembleE_n et renvoyant respectivement la réunion et l'intersection deA_1 etA_2 . - (a) Écrire une fonction récursive parties prenant
n etp en arguments et renvoyant la liste de toutes les parties àp éléments de l'ensembleE_n . Par exemple, lorsquen = 2 etp = 1 , le résultat renvoyé est :[[1], [2]] ; lorsquen = 2 etp = 0 , le résultat renvoyé est [[]]. On pourra remarquer que l'ensemble des parties àp éléments se partitionne en l'ensemble des parties àp éléments contenantn et l'ensemble des parties àp éléments ne contenant pasn .
(b) Détailler l'exécution de votre algorithme sur les entiersn = 3 etp = 2 .
4 Fonctions booléennes
Soit
n ∈ ℕ^∗ . On convient de confondre les booléens «vrai» et «faux» avec les entiers 1 et 0 . On appelle fonction booléenne toute application :
4.1 Un opérateur universel
- Soit
f une fonction booléenne. Justifier l'égalité :
- Soit
n ∈ ℕ^∗ . Montrer que toute fonction booléenne de{0, 1}^n dans{0, 1} peut s'écrire à l'aide des opérateurs¬, ∧ et∨ et des variablesx_1, x_2, …, x_n . - On pose
A↑B = (¬A) ∨ (¬B) . Montrer que toute fonction booléenne peut s'écrire uniquement à l'aide de l'opérateur↑ et des variablesx_1, x_2, …, x_n .
4.2 Formules croissantes
On munit
{0, 1}^n de l'ordre produit :
On dit qu'une fonction booléenne
f est croissante lorsque :
- Donner un exemple de fonction
f telle que nif , ni¬f ne soit croissante. (On justifiera soigneusement le contre-exemple.) - Peut-on affirmer que si
f : {0, 1}^n → {0, 1} est croissante alorsf_0 : (x_1, …, x_(n − 1)) ↦ f(x_1, …, x_(n − 1), 0) etf_1 : (x_1, …, x_(n − 1)) ↦ f(x_1, …, x_(n − 1), 1) sont croissantes? (On donnera une preuve ou un contreexemple.) - Si
f est croissante, montrer quef_1 = f_0 ∨ f_1 . - Montrer que la fonction
f est croissante si et seulement si elle est équivalente à une formule écrite à l'aide des opérateurs∧ et∨ , des variablesx_1, x_2, …, x_n et des fonctions constantes à 0 et 1 .
5 Préfixes et suffixes
Soit
Σ un alphabet fini. Soit
u ∈ Σ^∗ . Un mot
v ∈ Σ^∗ est un préfixe de
u lorsqu'il existe
w ∈ Σ^∗ tel que
u = vw et un mot
w ∈ Σ^∗ est un suffixe de
u lorsqu'il existe
v ∈ Σ^∗ tel que
u = vw . Pour la suite, on pose :
Σ = {a, b} et
u = baabbaa .
- Dresser la liste des préfixes de
u ainsi que la liste de ses suffixes. - Représenter graphiquement un automate déterministe reconnaissant exactement l'ensemble des préfixes de
u . - (a) Représenter graphiquement un automate non déterministe simple reconnaissant exactement l'ensemble des suffixes de
u .
(b) Représenter graphiquement le résultat de l'application de l'algorithme de déterminisation sur l'automate obtenu à la question précédente.
Pas de description pour le moment
