Bonjour , j' ai trouvé cet exercice sur les structures de données et je bloque vers la fin lorsqu'ils nous demandent de générer une matrice approximative à la matrice initiale à partir des blocs homogènes trouvés. En fait je n'ai pas compris ce qu'il faut faire pour générer cette matrice finale. Est-ce que vous pouvez s'il vous plait m'expliquer.

On suppose qu'on a une matrice M de valeurs entières supposée carrée de taille n (n est une puissance de 2). On veut

chercher les blocs homogènes de la matrice M et les stocker dans un tableau ou dans une liste chaînée. Chaque bloc

homogène est identifié par ses coordonnées i et j, sa taille et sa moyenne. Les blocs homogènes sont les blocs qui ont

un écart-type inférieur à un seuil S fixé.

Pour trouver les blocs homogènes, on procède de la manière suivante:

1 - Si ecart-type(M) < S (seuil fixé) on arrête

2- Sinon divisez la matrice en 4 blocs : M1, M2, M3, M4 et pour chaque bloc Mi

(i=1, 2, 3, 4), refaire la même

procédure jusqu'à trouver un bloc homogène ou la taille du bloc atteint 2x2.

M1 M2

M3 M4

Exemple:

int M[max][max]={ {10,10,20,20,40,40,40,40},

{10,10,20,20,40,40,40,40},

{30,30,50,50,40,40,40,40},

{30,30,50,50,40,40,40,40},

{60,60,60,60, 5, 5,20,20},

{60,60,60,60, 5, 5,20,20},

{60,60,60,60,20,20, 7,5},

{60,60,60,60,20,20, 7, 7}};

Les blocs homogènes de M, selon un seuil de valeur égale à 5, sont:

{0,0,2,10},{0,2,2,20},{2,0,2,30},{2,2,2,50},{0,4,4,40},{4,0,4,60},{4,4,2,5},{4,6,2,20},

{6,4,2,20},{6,6,2,7}.

Par exemple le bloc identifié par {2, 0, 2, 30} est le bloc qui commence à partir de la ligne n°2 et la colonne n°0, de

taille 2 et de moyenne 30.

MERCI