Top piège du sujet
Syntaxe OCaml mélangée avec du Python, for i in range, références
Statistiques jury
Comment les candidats s'en sont sortis
Notes brutes officielles publiées par le jury — non harmonisées.
Moyenne
10.78
Médiane
10.4
Écart-type
3.58
Q1 (25%)
8.2
Q3 (75%)
13.2
Candidats présents
1 612
sur 1 699 inscrits · 5.1% d'absents
Comparaison
Comment ce sujet se compare aux autres
Moyenne en hausse de +0.49 par rapport à 2018 (10.78 vs 10.29). Écart-type stable (σ=3.58). Sujet plus accessible que la session précédente.
Calculateur
Où je me situe sur ce sujet ?
Entrez votre note brute. Le percentile et la position se mettent à jour en temps réel.
Analyse
Ce qu'a observé le jury
Synthèse Hadamard du rapport officiel — citations, chiffres et conseils du jury.
Présentation du sujet
Sujet sur l'énumération de Gray des écritures binaires et leur utilisation pour générer efficacement des combinaisons. Partie I : énumération lexicographique puis dans l'ordre de Gray, étude théorique. Partie II : énumération des combinaisons de p éléments parmi n et application au problème du sac à dos restreint. Mise en œuvre en OCaml ou Caml-light, manipulation de listes (partie I) puis de vecteurs (partie II).
Structure de l'épreuve
- Partie I — Énumération binaire, ordre lexicographique et Gray(Q1-Q13)Niveau attendu
Énumération lexicographique puis dans l'ordre de Gray des écritures binaires, suivie d'une étude théorique de cet ordre. Manipulation de listes. Q3-Q4 délicates pour la gestion des cas de base.
- Partie II — Combinaisons et sac à dos (utilisation de tableaux)(Q14-Q24)Difficile
Énumération des combinaisons de p éléments parmi n via représentation binaire. Application au problème du sac à dos restreint. Q14-Q19 imposent l'utilisation de tableaux et l'évaluation paresseuse.
Analyse globale du jury
« Le sujet a été bien compris. Malheureusement, la formulation de certaines questions a pu légitimement troubler les candidats ; elles étaient involontairement ambiguës pour une programmation en OCaml ou Caml-light. De plus une indication était fausse. Nous sommes désolés de ces défauts, mais nous avons apprécié la capacité des candidats à s'adapter, soit en signalant et corrigeant l'erreur, soit en trouvant des stratégies de contournement raisonnables. Les copies sont globalement lisibles et correctement présentées, même si certains persistent à écrire des codes sur plusieurs pages, et utilisent de nombreuses fonctions auxiliaires, sans expliquer leurs rôles et avec des noms de fonctions et de variables neutres, ce qui rend certains codes incompréhensibles en temps raisonnable. »
Top pièges sanctionnés
Syntaxe OCaml mélangée avec du Python, for i in range, références-2 pts
« La syntaxe OCaml est bien respectée, même si certains inventent des fonctions comme List.make ou continuent à mélanger des éléments Python, par exemple for i in range. Nous constatons toujours de grandes difficultés sur les références : oubli fréquent de !, syntaxes farfelues, création d'une référence dans une fonction recursive au lieu de la créer à l'extérieur puis de la modifier avec la fonction recursive. »
Filtrages incomplets, cas de base oubliés ou mot-clé `when` absent-2 pts
« Lors des filtrages, certains oublient le cas de base ou retournent des messages d'erreur dans ce cas, ou encore renvoient des types différents selon les cas. Nous constatons également que de nombreux candidats ne savent pas identifier les situations de filtrage où le mot-clé `when` est indispensable. »
Évaluation paresseuse, `&&` ne commute pas dans une boucle while-2 pts
« Attention à l'utilisation de l'évaluation paresseuse : `while c.(!i + 1) = c.(!i) + 1 && !i < p - 1` n'équivaut pas à `while !i < p - 1 && c.(!i + 1) = c.(!i) + 1`. »
Références : oubli du `!`, création dans la fonction récursive-1 pts
« De très nombreux candidats ne semblent pas mesurer le coût temporel de q@[a] pour l'ajout d'un élément a à la queue d'une liste q. Cependant, beaucoup de candidats maîtrisent bien tout cela et justifient leurs codes quand c'est nécessaire. »
Fonctions auxiliaires baptisées aux_1 à aux_n, code illisible-2 pts
« Comme toujours, il faut rappeler que l'épreuve est corrigée par des humains, qui peuvent faire preuve de tolérance sur des erreurs de syntaxe peu importantes, mais doivent pouvoir comprendre sans difficulté les codes, ce qui devient impossible quand on utilise des fonctions auxiliaires nombreuses, simplement appelées aux_1 à aux_n et utilisant les mêmes noms de variables. »
Chapitres clés à maîtriser
Bosse chaque chapitre sur d'autres sujets de concours qui le couvrent.
Source : Rapport du jury Centrale-Supélec · Info MP, session 2019 · PDF officiel ↗
Contexte
L'épreuve en quelques chiffres
L'épreuve Option Informatique Centrale-Supélec MP 2019 s'est déroulée fin avril 2019, durée 4h, coefficient 10. Programmation en OCaml ou Caml-light au choix du candidat. Sujet sur l'énumération de Gray des écritures binaires et leur utilisation pour générer efficacement des combinaisons (variante du problème du sac à dos).
Deux parties : la première traite de l'énumération lexicographique puis dans l'ordre de Gray des écritures binaires avant une étude théorique. La seconde concerne l'énumération des combinaisons de p éléments parmi n et son application au sac à dos restreint. La mise en œuvre demande la manipulation de listes (partie I) puis de vecteurs (partie II).
La moyenne brute s'est établie à 10.78/20, écart-type 3.58. Médiane 10.4, premier quartile 8.2, troisième quartile 13.2. 1612 candidats présents sur 1699 inscrits (5.1% d'absents). L'épreuve est plus accessible que les maths : la médiane se situe au-dessus de 10. Note : le jury a reconnu publiquement deux défauts du sujet (formulation ambiguë et indication fausse).
Accompagnement personnalisé
Travaillez ce sujet avec un prof de l'équipe
Nos professeurs anciens taupins (Polytechnique, ENS, Centrale) reprennent ce sujet avec toi en cours particulier — corrigé ligne par ligne, méthode, pièges évités.
Trouvez le prof qu'il vous faut
Échangez avec notre équipe pour trouver le professeur idéal selon vos besoins.
Stratégie
Notre approche pour ce sujet
Le jury 2019 a apprécié les candidats qui ont signalé et corrigé l'erreur d'indication ou trouvé des stratégies de contournement raisonnables. Si une question paraît mal formulée, signale-le explicitement et propose une interprétation cohérente, c'est valorisé. La stratégie classique reste : codes concis, clairs, judicieusement commentés, avec des noms explicites.
Si tu vises 10-13/20 (médiane à top 25%)
Concentre-toi sur la partie I (énumération binaire avec listes). Q1-Q2 (modifier la liste, retourner un booléen), Q4 (améliorée au sens de Q6 récompensée), Q5-Q6 sur l'énumération. Évite Q14-Q16 où l'évaluation paresseuse && piège massivement.
Si tu vises 14+ (top 10%)
Il faut maîtriser parfaitement la partie II : conversion entre représentation binaire et combinaisons, algorithme de sac à dos restreint. Q16, attention à l'évaluation paresseuse de && (l'ordre des conditions importe). Code OCaml impeccable avec types explicités quand nécessaire.
Gestion des 4h : 2h sur la partie I (Q1-Q13, listes), 1h30 sur la partie II (Q14-Q24, tableaux), 30 min de relecture du code. Conseils techniques : ne mélange pas Python (for i in range) et OCaml ; utilise ! correctement pour déréférencer ; crée tes références à l'extérieur des fonctions récursives ; utilise when dans les filtrages quand nécessaire ; nomme tes fonctions auxiliaires explicitement (pas aux_1 à aux_n).
Conseils du jury
Cinq conseils transversaux
- Codes concis et clairs : une idée exprimée sobrement est souvent un gage de qualité ; décomposer en plusieurs petites fonctions.
- Commentaires ciblés et noms explicites :
nombre_1plutôt queaux_1; conserver les noms et notations du texte. - Maîtriser la syntaxe OCaml : pas de mélange Python, références avec
!correct, filtrage avecwhenquand nécessaire. - Attention à l'évaluation paresseuse de
&&, l'ordre des conditions dans une bouclewhileest sémantiquement signifiant. - Mesurer la complexité : le coût de
q@[a](ajout en fin de liste) doit être justifié ; utiliser une représentation adaptée à l'algorithme.
Ressources
Téléchargements
Sujet officiel, corrigé Hadamard et rapport jury — tout en un endroit.
FAQ