Information

Deadline No deadline
Submission limit No limitation

Sign in

EXAMEN_Facile_Matrice

Pour cette question, vous devez implémenter deux fonctions Python qui permettent d’extraire des informations stockées dans une matrice (liste de liste) M. Cette matrice est carrée, de dimension plus grande que 1, et contient des nombres décimaux ; par exemple

Janvier_2021_Matrice/matrice.PNG

La première fonction moyenne_diag(M) doit simplement renvoyer une liste à deux éléments contenant la moyenne des deux diagonales principales de la matrice. Dans notre exemple ci-dessus, elle renvoie la liste [d1, d2] avec

\(d1 = (1.2 + 5.1 + 1.5 + 1.9 + 4.9 + 2.0)/6 = 16.6/6 = 2.77\)

\(d2 = (8.9 + 6.3 + 6.8 + 5.3 + 3.3 + 0.9)/6 = 31.5/6 = 5.25\)

La deuxième fonction maxima(M) doit renvoyer une liste des coordonnées des éléments de la matrice qui sont des maxima locaux. Dans notre contexte, nous dirons qu’un élément x est un maximum local lorsque tous ses 8 voisins (aussi bien horizontaux, verticaux que diagonaux) sont strictement plus petits que lui, tout en se trouvant à l’intérieur de la matrice (on considère qu'un maximum local ne peut pas se trouver sur les « bords » d'une matrice, et compte donc nécessairement 8 voisins). Pour faciliter votre travail, n’hésitez pas à définir une fonction Python intermédiaire qui, par exemple, évalue si un élément précis de M est un maximum local, et ensuite utiliser cette fonction dans maxima.

Dans notre exemple:

  • Les maxima locaux sont indiqués en gras.
  • Les éléments de valeur 8.9 et 4.7 ne sont, par exemple, pas des maxima locaux car ils se trouvent au « bord » de la matrice.
  • Les trois maxima se situent en (ligne 1, colonne 1), (ligne 2, colonne 3), (ligne 4, colonne 4) car les indices commencent à 0.
  • La fonction maxima renvoie ces coordonnées (ligne, colonne) dans une liste, [[1,1], [2,3], [4,4]].

Question 1: Implémentation

Implémentez la fonction def moyenne_diag(M): qui renvoie une liste de deux nombre décimaux.

Question 2: Implémentation

Implémentez la fonction def maxima(M): qui renvoie une liste des coordonnées (ligne, colonne) de tous les maxima.