Tout les sous matrice possible d'une matrice [Résolu] - Algo - Programmation
Marsh Posté le 29-03-2007 à 16:10:40
lkolrn a écrit : Ponce encore... |
C'est bon, en fait c'est tout bette:
ExtractionSMATRCIE( Matrice mat(N, M), Entier s_N, Entier s_M ) |
Marsh Posté le 30-03-2007 à 17:18:47
salut
j'ai aussi besoin de l'aglo d'extraction de sous matrice mais dans le premier exemple
2 6 8
0 1 3
8 5 7
les matrice 2 8 0 3 sont des sous matrice mais l'algo que vous citez
0 3 8 7
plus haut ne les prend pas en charge et ne les affiche pas comment faire pour afficher toute les sous matrice ?
Marsh Posté le 28-03-2007 à 23:55:51
Hi
J'ai un petit problème avec un algo qui consiste à extraire toutes les sous matrice s_mat de taille s_N (lignes) et s_M (colonnes) à partir d'une matrice mat de taille N (lignes) et M (colonnes).
Si par exemple j'ai une matrice mat de taille (3,3) comme ceci:
2 6 8
0 1 3
8 5 7
et que les sous matrices à extraire sont de taille (2,2), alors les sous matrices à extraire sont:
2 6
0 1
6 8
1 3
0 1
8 5
1 3
5 7
Alors voilà l'algorithme fonctionnel auquel j'ai ponçais:
1) crée (allouer) à chaque fois une sous matrice s_mat.
2) parcourir cette sous matrice pour la remplir à partir d'un indice de ligne L et un indice de colone C comme
ceci:
les Lignes: de L à L+s_N
les Colonne de C à L+s_M
3) Faire varier les indice L et C comme ceci:
if( C <= M-s_M )
C = C + 1;
else
{
C = 0;
L = L + 1;
}
En claire ça donne ceci:
ExtractionDESousMatrice( Matrice mat(N, M), Entier s_N, Entier s_M )
{
Entier i, j, L=0, C=0;
Matrice s_mat;
TantQue ( L <= N-s_N )
{
AllocationMemoire( s_mat, s_N, s_M);
for( i=L à L+s_N -1 )
for( j=C à j<s_M -1 )
s_mat[i][j] = mat[i][j];
if( C <= M-s_M )
C++;
else
{
C = 0;
L++;
}
AffichageMatrice(s_mat);
FreeMemoire( );
}
}
Mais en l'implémentant en langage C, ça ne me donne pas le résultat attendu !
merci
Message édité par _Reggae_ le 30-03-2007 à 19:45:19