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

Aller au contenu principal
Annale · 2024★★★Niveau moyenSession du 19 avril 2024· 2 109 candidats

Info B X-ENS MP 2024, sujet, corrigé et rapport jury

Sujet Python de 2h en 4 parties de difficulté croissante (partie IV dépend de III, autres indépendantes). Moyenne 9.25, σ=3.8 sur 2109 candidats. Sujet, corrigé Hadamard et synthèse rapport jury.

Mohamed K.

Mohamed K.

Centralien · MPSI puis MP · Recherche ML santé

Top piège du sujet

Pas de test de dépassement de bornes de listes, systématiquement pénalisé

Statistiques jury

Comment les candidats s'en sont sortis

Notes brutes officielles publiées par le jury — non harmonisées.

Moyenne

9.25

Médiane

9.3

Écart-type

3.80

Q1 (25%)

6.7

Q3 (75%)

11.8

Candidats présents

2 109

Comparaison

Comment ce sujet se compare aux autres

Moyenne en baisse de -1.15 par rapport à 2023 (9.25 vs 10.4). Écart-type plus élevé (σ 3.3 → 3.8), notes plus dispersées. Sujet plus exigeant 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 Python de 2h en 4 parties de difficulté croissante (partie IV dépend de III, autres indépendantes). Représentation : cle_l et cle_c listes de listes d'entiers, sol[i][j] dans {0,1}. Partie I (Q1-Q4) : fonctions de base (cases noires, taille minimale, vérification de solution, comparaison). Partie II (Q5-Q7) : énumération naïve par division euclidienne et amélioration. Partie III (Q8-Q10) : test de conflit, ajout incrémental. Partie IV (Q11-Q14) : algorithme de…

Structure de l'épreuve

  1. Partie IPartie I, Fonctions de base sur listes de listes(Q1-Q4)Abordable

    Q1 parcours de listes de listes (compter cases noires). Q2 réutilisation : test if i suivi de return True évité. Q3 taille minimale : sum + len − 1. Q4 vérification d'une solution : ne pas oublier de vérifier les blocs manquants. Q1-Q4 : 94-100 % traitée, 0,62-0,93 moyenne.

  2. Partie IIPartie II, Énumération via division euclidienne et récursion(Q5-Q7)Difficile

    Q5 division euclidienne (quotient + reste, pas partie entière). Q6 (récursive) très discriminante : structure récursive correcte mais peu écrivent sans erreur. Q7 amélioration via verif_ligne. 81-99 % traitée, moyennes 0,28-0,73.

  3. Partie IIIPartie III, Test de conflit et ajout incrémental(Q8-Q10)Très difficile

    Q8 test de conflit (conditions a/c ne s'appliquent pas si plage touche le bord). Q9 difficile et rarement réussie, algorithmes longs en O(nc·s) souvent. Q10 (ajout incrémental). 64-98 % traitée, moyennes 0,36-0,79.

  4. Partie IVPartie IV, Algorithme de résolution complète(Q11-Q14)Très difficile

    Q11-Q14 : algorithme final de résolution. Q11-Q14 : 10-44 % traitée, moyennes 0,22-0,38. Q13 plutôt facile (66 % moyenne) mais peu abordée. Très peu abordées dans l'ensemble.

Analyse globale du jury

« Sujet Python sur la résolution de Logimage (Picross). Sujet long avec questions assez subtiles (9, 12). Q12-Q14 très peu abordées, Q13 plutôt facile pourtant. 2109 candidats français + internationaux admissibles : moyenne 9,25/20, σ=3,80. Syntaxe Python en grande majorité maîtrisée. À l'exception de Q6 récursive, tout se résolvait en style impératif (boucles for/while). Lisibilité, noms de variables explicites, expliquer fonctions > 10 lignes en langage courant. Erreur fréquente : pas de test de dépassement de bornes de listes (systématiquement pénalisée). Plusieurs candidats ne savent pas copier une liste en Python. »

Top pièges sanctionnés

  • Pas de test de dépassement de bornes de listes, systématiquement pénalisé-2 pts

    « L'absence de test sur le dépassement de bornes de listes est une erreur trop fréquente et systématiquement pénalisée. Plusieurs candidats semblent également ignorer quand et comment copier une liste en Python. »

  • Tests booléens inutiles : if cases_noires(cle_l) == cases_noires(cle_c): return True (Q2)-1 pts

    « Beaucoup de copies ajoutent cependant des tests inutiles dans leur manipulation des booléens (par exemple, un test if suivi d'un return True). Il était suffisant d'écrire return cases_noires(cle_l) == cases_noires(cle_c) en faisant bien attention à utiliser le test d'égalité == et non le = de l'affectation. »

  • Q4 : vérifier que solution contient uniquement 0/1 au lieu de blocs manquants-2 pts

    « La question 4.2 est assez peu réussie. Quelques copies ont répondu que la fonction ne vérifie pas si la solution contient uniquement des 0 et 1. Pour avoir l'ensemble des points à cette question, la réponse d'avantage attendue était que la fonction ne vérifie pas s'il y a des blocs manquants. »

  • Exprimer la solution avec partie entière au lieu de quotient/reste de division euclidienne (Q5)-2 pts

    « Curieusement, des candidats relativement nombreux expriment la solution sous forme de partie entière au lieu de parler de quotient et de reste de la division euclidienne. D'autres se contentent d'énoncer l'égalité n = k*nc+l mais ne concluent pas sur la division euclidienne. Les copies qui se sont contentées d'indiquer cette égalité n'ont pas eu de points. »

  • Mauvaise spécification de la fonction auxiliaire récursive, retourner liste au lieu de la modifier (Q6)-2 pts

    « Une mauvaise compréhension de la spécification de la fonction auxiliaire : elle doit ajouter les solutions trouvées à la liste passée en argument ; notamment, elle ne doit pas retourner cette liste. L'ajout de solutions à liste sans effectuer de copie au préalable (avec la fonction copy_sol() nommée dans le sujet). »

Contexte

L'épreuve en quelques chiffres

L'épreuve Info B X-ENS MP 2024 s'est déroulée en 2h, coefficient 4 à l'admissibilité Polytechnique. Sujet commun aux filières MP et MPI, parfois avec quelques questions optionnelles spécifiques.
Le sujet 2024 traitait de : Sujet Python de 2h en 4 parties de difficulté croissante (partie IV dépend de III, autres indépendantes).
La moyenne brute s'est établie à 9.25/20, écart-type 3.8 sur 2109 candidats. Note jury : 2109 candidats français + internationaux admissibles. Moyenne 9,25/20 (σ=3,80). Q1-Q5 et Q8 très bien traitées (94-100 %). Q12-Q14 peu abordées (10-19 %).

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

Sujet en 4 parties. Le jury X-ENS rappelle systématiquement qu'il vaut mieux traiter en profondeur quelques parties plutôt que de survoler l'ensemble du sujet.
  • Partie I, Fonctions de base sur listes de listes (Q1-Q4 · facile)
  • Partie II, Énumération via division euclidienne et récursion (Q5-Q7 · dur)
  • Partie III, Test de conflit et ajout incrémental (Q8-Q10 · tres-dur)
  • Partie IV, Algorithme de résolution complète (Q11-Q14 · tres-dur)
Stratégie générale : 15 min de lecture intégrale + choix d'attaque, puis attaque ordonnée des parties où tu marques le plus de points proprement, avec justification systématique des hypothèses des théorèmes utilisés. X-ENS récompense la rédaction approfondie, pas le grappillage.

Conseils du jury

Pièges sanctionnés par le rapport

  • Pas de test de dépassement de bornes de listes, systématiquement pénalisé : « L'absence de test sur le dépassement de bornes de listes est une erreur trop fréquente et systématiquement pénalisée. Plusieurs candidats semblent également ignorer quand et comment copier une liste en Python. »
  • Tests booléens inutiles : if cases_noires(cle_l) == cases_noires(cle_c): return True (Q2) : « Beaucoup de copies ajoutent cependant des tests inutiles dans leur manipulation des booléens (par exemple, un test if suivi d'un return True). Il était suffisant d'écrire return cases_noires(cle_l) == cases_noires(cle_c) en faisant bien attention à utiliser le test d'égalité == e... »
  • Q4 : vérifier que solution contient uniquement 0/1 au lieu de blocs manquants : « La question 4.2 est assez peu réussie. Quelques copies ont répondu que la fonction ne vérifie pas si la solution contient uniquement des 0 et 1. Pour avoir l'ensemble des points à cette question, la réponse d'avantage attendue était que la fonction ne vérifie pas s'il y a des blo... »
  • Exprimer la solution avec partie entière au lieu de quotient/reste de division euclidienne (Q5) : « Curieusement, des candidats relativement nombreux expriment la solution sous forme de partie entière au lieu de parler de quotient et de reste de la division euclidienne. D'autres se contentent d'énoncer l'égalité n = k*nc+l mais ne concluent pas sur la division euclidienne. Les ... »
  • Mauvaise spécification de la fonction auxiliaire récursive, retourner liste au lieu de la modifier (Q6) : « Une mauvaise compréhension de la spécification de la fonction auxiliaire : elle doit ajouter les solutions trouvées à la liste passée en argument ; notamment, elle ne doit pas retourner cette liste. L'ajout de solutions à liste sans effectuer de copie au préalable (avec la foncti... »

Ressources

Téléchargements

Sujet officiel, corrigé Hadamard et rapport jury — tout en un endroit.

FAQ

Questions fréquentes — 2024

Partager

Préparation X-ENS · Info MP

Bossez ce sujet 2024 avec un ancien taupin

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