Newsgroup: it.comp.lang.pascal
Titolo: richiesta di aiuto su un algoritmo

Salve a tutti
ho da porvi un problema che spero troverete molto facile.
Devo creare un algoritmo che analizzi sequenzialmente delle stringhe
binarie.
In sostanza dovrei ricalcare un normale algoritmo di ricerca ad albero
binario, ma  vorrei prestare più attenzione per ogni singolo step percorso.
Mi spiego meglio.
Mettiamo di avere una stringa di partenza così strutturata a caso: 1  ( I
elemento/livello), 0 ( II ), 1 ( III ): 101;
vorrei che l'iterazione sucessiva partisse dal secondo elemento (0) e
modificasse il terzo (da 1 a 0);
nella terza iterazione, il programma memore della combinazione già percorsa
deve partire dal primo elemento (1), dato che il terzo con tale combinazione
è già stato esaminato,  e deve modificare il secondo(da 0 a 1);
la terza iterazione parte dal risultato della precedente e modifica il terzo
elemento (a caso visto che con tali valori, nei precedenti elementi, non è
stato mai esaminato);
la quarta esaminerà quella combinazione che mantenendo tutto immutato, varia
soltanto il terzo elemento;
 e così via con le sucessive iterazioni...
E' molto simile ad un algoritmo di ricerca in profondità, ma mi servirebbe
che:
1. la combinazione iniziale fosse assolutamente casuale, e nonostante ciò si
riuscisse a percorrere le altre possibili combinazioni, senza ripetizione;
2. l'analisi delle combinazioni fosse gerarchicamente strutturata: prima si
verificano le combinazioni al terzo livello, poi al secondo (e di seguito
quelle al terzo) e infine al primo (poi seconde, e poi terze);
3. la singola iterazione si esaurisce quando si varia un elemento, non
quando si è trovata una nuova combinazione completa e deve essere chiaro a
quale punto è arrivato;
4. l'avvio di ogni iterazione NoN è determinato dalla presenza di residue
combinazioni non ancora analizzate (come normalemente accade negli alberi di
ricerca), ma da una variabile tempo. Dunque il programma può terminare
l'esecuzione anche prima di aver esaminato tutte le combinazioni.
Ho una capacità esplicativa devastante, spero comunque che qualcuno, avendo
decodificato la mia richiesta, abbia qualche suggerimento da darmi
Grazie
Cristina
p.s in realtà qlc ho già fatto ma mi sembra di aver creato un gigante senza
piedi...

 wrote in message 949mvj$58k$1...@byky.systemy.it...


> Purtroppo non capisco cosa esattamenti vorresti fare.
Mi associo.

se non ho afferrato male lei vorrebbe un algoritmo che faccia la seguente
cosa:
1 ciclo: 101 partenza analizzo tutti 3 i numeri
2 ciclo: 101 analizzo solo 01 e poi cambia il valore del terzo da cui 101 ->
100
3 ciclo: analizza 100 e cambia il valore il secondo numero da cui 100 -> 110
4 ciclo: analizza 110 e  cambia il terzo valore 110 -> 111
un qualcosa che analizzi tu le possibili combinazioni automodificandosi il
valore in ingresso.
Cosi' su due piedi non ho idee, se ho il tempo me ne occupo
Bye a tutti e spero di non aver detto c...ate
"Alex" <el_co...@TOGLIQUESTOlibero.it> ha scritto nel messaggio
news:WKFa6.104997$eB2.7...@news.infostrada.it...


 wrote in message
JmMa6.108116$eB2.8...@news.infostrada.it...

grazie Dav e Alex per aver risposto all'appello,
i cicli sono quasi come li hai descritti, Dav,
ma con la differenza che ogni ciclo corrisponde alla variazione di un solo
elemento (il ciclo puň anche non arrivare alla fine di una combinazione)
p.e.:
mettiamo che esista anche una funzione che scelga casualmente i valori
iniziali e quelli futuri non esaminati, (quando la scelta č casuale metterň
un *,  un - per mostrare che la combinazione non č ancora completa, ) avremo
allora:
I Ciclo:   1* -   -;
II ciclo:   1  0* -;
III ciclo:  1  0  1*;  I combinazione trovata, viene memorizzata;
IV ciclo:  1  0  0,   II combinazione;
V ciclo:   1  1   -;
VI ciclo:  1  1   0*; III combinazione;
VII      :   1  1   1;   IV combinazione;
VIII         0  -   -;
IX           0   1*  -;
....
per ciclo intendo l'esecuzione completa di 1 periodo di tempo (nell'esempio
se T=9, allora il programma ha trovato solo 4 combinazioni)
Spero che sia un po' piů chiaro ora,
Grazie ancora
Cri