Aperçu du sujet
EXERCICE 1 (6 points) Cet exercice porte sur la programmation Python (listes, dictionnaires) et la méthode “diviser pour régner”. Cet exercice est composé de trois parties indépendantes. Dans cet exercice, on s’intéresse à des algorithmes pour déterminer, s’il existe, l’élément absolument majoritaire d’une liste. On dit qu’un élément est absolument
EXERCICE 1 (6 points) Cet exercice porte sur la programmation Python (listes, dictionnaires) et la méthode “diviser pour régner”. Cet exercice est composé de trois parties indépendantes. Dans cet exercice, on s’intéresse à des algorithmes pour déterminer, s’il existe, l’élément absolument majoritaire d’une liste. On dit qu’un élément est absolument majoritaire s’il apparaît dans strictement plus de la moitié des emplacements de la liste. Par exemple, la liste admet comme élément [1, 4, 1, 6, 1, 7, 2, 1, 1] 1 absolument majoritaire, car il apparaît 5 fois sur 9 éléments. Par ailleurs, la liste [1, n’admet pas d’élément absolument majoritaire, car celui qui 4, 6, 1, 7, 2, 1, 1] est le plus fréquent est , mais il n’apparaît que 4 fois sur 8, ce qui ne fait pas plus que 1 la moitié. 1. Déterminer les effectifs possibles d’un élément absolument majoritaire dans une liste de taille 10. Partie A : Calcul des effectifs de chaque élément sans dictionnaire On peut déterminer l’éventuel élément absolument majoritaire d’une liste en calculant l’effectif de chacun de ses éléments. 2. Écrire une fonction qui prend en paramètres une valeur et une effectif val liste et qui renvoie le nombre d’apparitions de dans . Il ne faut pas lst val lst utiliser la méthode . count 3. Déterminer le nombre de comparaisons effectuées par l’appel effectif(1, . [1, 4, 1, 6, 1, 7, 2, 1, 1]) 4. En utilisant la fonction précédente, écrire une fonction qui effectif majo_abs1 prend en paramètre une liste , et qui renvoie son élément absolument lst majoritaire s’il existe et renvoie sinon. None 5. Déterminer le nombre de comparaisons effectuées par l’appel à . majo_abs1([1, 4, 1, 6, 1, 7, 2, 1, 1]) 24-NSIJ2JA1 Page : 2 / 12 Partie B : Calcul des effectifs de chaque élément dans un dictionnaire Un autre algorithme consiste à déterminer l’élément absolument majoritaire éventuel d’une liste en calculant l’effectif de tous ses éléments en stockant l’effectif partiel de chaque élément déjà rencontré dans un dictionnaire. 6. Recopier et compléter les lignes 3, 4, 5 et 7 de la fonction suivante eff_dico qui prend en paramètre une liste et qui renvoie un dictionnaire dont les clés lst sont les éléments de et les valeurs les effectifs de chacun de ces éléments lst dans . lst 1 def eff_dico(lst): 2 dico_sortie = {} 3 for ......... : 4 if ... in dico_sortie: