Manugal
13-07-2006, 16:49
Ciao.
Sto cercando di capire cosa avviene passo passo in questo algoritmo:
Funzione chiamante:
void gensec(int n, int k){
int t[n];
genseqrec(n,k,t,-1);
}
void genseqrec (int n, int k, int t[], int l){
int i;
if(l==n-1)
stampa(t);
else
for(i=1; i<=k; ++i){
t[l+1]=i;
genseqrec(n,k,t,l+1);
}
}
Praticamente è un algoritmo che genera tutte le sequenze di lunghezza n, definite nell'inisieme {1,.....,k}. Quindi per n=2 e k=3 avrò:
(1,1) (1,2) (1,3)
(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)
Il problema è che non riesco a capire quel ciclo for, cosa succede ad ogni iterazione. Grazie.
Sto cercando di capire cosa avviene passo passo in questo algoritmo:
Funzione chiamante:
void gensec(int n, int k){
int t[n];
genseqrec(n,k,t,-1);
}
void genseqrec (int n, int k, int t[], int l){
int i;
if(l==n-1)
stampa(t);
else
for(i=1; i<=k; ++i){
t[l+1]=i;
genseqrec(n,k,t,l+1);
}
}
Praticamente è un algoritmo che genera tutte le sequenze di lunghezza n, definite nell'inisieme {1,.....,k}. Quindi per n=2 e k=3 avrò:
(1,1) (1,2) (1,3)
(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)
Il problema è che non riesco a capire quel ciclo for, cosa succede ad ogni iterazione. Grazie.