Stages de Pré-Rentrée — Inscriptions ouvertes, places très limitées ! S'inscrire

Aller au contenu principal
Annale · 2019★★★Niveau moyenSession du 29 avril 2019· 1 612 candidats

Option Informatique Centrale-Supélec MP 2019, sujet et rapport jury

Sujet OCaml/Caml-light sur l'énumération de Gray des écritures binaires et combinaisons (variante du sac à dos). Deux parties, listes et vecteurs. Moyenne 10.78, σ=3.58, médiane 10.4 sur 1612 présents. Sujet et rapport jury.

Mohamed K.

Mohamed K.

Centralien · MPSI puis MP · Recherche ML santé

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

  1. 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.

  2. Partie IICombinaisons 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. »

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.

Cours 1 à 1 en visio ou présentielCorrigé détaillé du sujetMéthode de rédaction
Travailler avec un prof
RDV gratuit de 15 min

Trouvez le prof qu'il vous faut

Échangez avec notre équipe pour trouver le professeur idéal selon vos besoins.

Matching avec le bon prof
Programme sur-mesure
Premier cours d'essai

Sans engagement • Réponse sous 24h

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_1 plutôt que aux_1 ; conserver les noms et notations du texte.
  • Maîtriser la syntaxe OCaml : pas de mélange Python, références avec ! correct, filtrage avec when quand nécessaire.
  • Attention à l'évaluation paresseuse de &&, l'ordre des conditions dans une boucle while est 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

Questions fréquentes — 2019

Partager

Préparation Centrale-Supélec · Info MP

Bossez ce sujet 2019 avec un ancien taupin

Nos professeurs analysent votre copie sur ce sujet, identifient vos faiblesses et structurent votre révision pour la session 2020.