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
Partager