Polytechnique Option Informatique MP 2000Sujet et corrigé
- Structures de données : listes chaînées
- Complexité algorithmique
- Récursivité et suites définies par récurrence
- Codes de Gray et énumération combinatoire
- Ensembles et différence symétrique
Téléchargements
- Rapport du jury : non disponible
Présentation du sujet
Énumération des parties d'un ensemble par codes de Gray pour tester un tableau d'interrupteursAfficher ou masquer la section
Présentation du sujet
Le sujet traite du problème de tester toutes les configurations d'un tableau de N interrupteurs en minimisant le nombre de commutations. Il fait manipuler des parties d'un ensemble représentées par des listes chaînées, compare une énumération naïve par incrément à une énumération par code de Gray qui ne change qu'un interrupteur à la fois, puis étend cette approche au cas où un nombre trop grand d'interrupteurs baissés provoque une défaillance.
- 1Première partie : parties d'un ensembleManipulation de parties représentées par des listes chaînées d'indices triés : calcul du cardinal, différence symétrique, et détermination des interrupteurs à commuter entre deux configurations.
- 2Deuxième partie : énumération des parties par incrémentConstruction du successeur d'une partie associé à l'incrémentation de l'entier binaire correspondant, et calcul du coût total du test réalisé de cette manière.
- 3Troisième partie : énumération des parties par un code de GrayConstruction récursive d'une suite d'indices définissant un code de Gray, démonstration que cette suite énumère toutes les parties d'un ensemble fini, et écriture du programme de test associé, de coût minimal.
- 4Quatrième partie : système défaillantAdaptation du code de Gray pour énumérer uniquement les parties de cardinal borné, correspondant aux configurations non défaillantes d'interrupteurs, et démonstration de l'optimalité du coût obtenu.
Ces sujets peuvent vous intéresser
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
COMPOSITION D'INFORMATIQUE
L'utilisation des calculatrices n'est pas autorisée

type indice == int ;;
type partie == indice list ;;
type indice = integer ;
type partie = `noeud ;
noeud = record
valeur : indice ; suivant : partie ;
end ;
function cree_partie (v : indice ; s : partie) : partie ;
var p : partie ;
begin new (p) ; p^.valeur := v ; p^.suivant := s ; cree_partie := p end ;
Première partie. Parties d'un ensemble
| Caml |
|
| Caml | Pascal |
| value delta : partie -> partie -> partie | function delta (p,q : partie) : partie ; |
| Caml |
|
Caml
printf "%d " i ;
print_newline () ;
Pascal
write (i,' ') ;
writeln ;
Deuxième partie. Énumération des parties par incrément
Caml Pascal value succ : partie -> partie fonction succ (p : partie) : partie ;
a) Écrire un programme qui imprime la liste des indices des interrupteurs à commuter pour réaliser la totalité du test pour
Caml
value test_incr : int -> unit
Pascal
procedure test_incr ( n : integer) ;
b) Exprimer, en fonction deN , le nombre total d'interrupteurs à commuter pour réaliser le test de cette manière.
Troisième partie. Énumération des parties par un code de Gray
Pour tout entier
Question 6.
b) Donner la valeur de
a) Donner la valeur de
b) Montrer que pour tout
c) En déduire que pour tout
a) Écrire un programme s'inspirant des résultats de cette partie, qui imprime une liste d'indices d'interrupteurs à commuter pour réaliser la totalité du test. L'argument de cette fonction sera le nombre d'interrupteurs
Caml
value test_gray : int -> unit
b) Quel est le coût du test avec cette méthode (c'est-à-dire le nombre total d'interrupteurs à commuter) ? Peut-on réaliser le test à un coût moindre?
a) Donner une expression de
b) Écrire la fonction gray qui prend en argument une partie et retourne celle qui la suit immédiatement dans l'ordre défini par la suite
Caml Pascal value gray : partie -> partie fonction gray (p : partie) : partie ;
Quatrième partie. Système défaillant
a) Exprimer la longueur
b) Montrer que pour tout
Questions fréquentes
4 questionsSur quels chapitres porte le sujet d'informatique option info X MP 2000 ?Afficher ou masquer la section
Questions fréquentes
4 questionsSur quels chapitres porte le sujet d'informatique option info X MP 2000 ?
Il porte sur les structures de données de type liste chaînée, la complexité algorithmique, la récursivité et les codes de Gray, appliqués à l'énumération des parties d'un ensemble fini.
Les parties du sujet X option info MP 2000 sont-elles indépendantes ?
Les parties s'enchaînent progressivement : la première introduit la représentation des parties par listes chaînées, la deuxième une énumération simple par incrément, la troisième une énumération optimale par code de Gray, et la quatrième adapte ce code de Gray à une contrainte supplémentaire.
Quels résultats de cours faut-il connaître pour traiter ce sujet ?
Il faut maîtriser la manipulation de listes chaînées, l'écriture de fonctions récursives, l'analyse de complexité en nombre d'opérations, ainsi que les notions de base sur les parties d'un ensemble et la différence symétrique.
Ce sujet demande-t-il d'écrire du code Caml ou Pascal ?
Oui, chaque question demande d'écrire une fonction ou un programme, au choix en Caml ou en Pascal, les deux langages étant proposés côte à côte dans l'énoncé.
Pas de description pour le moment
