.dsy:it. Pages (25): « First ... « 17 18 19 20 [21] 22 23 24 25 »
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Algoritmi e strutture dati (http://www.dsy.it/forum/forumdisplay.php?forumid=207)
-- [Algoritmi] Progetto "CONTROLLO REMOTO" (http://www.dsy.it/forum/showthread.php?threadid=16306)


Posted by Teju on 24-01-2005 16:52:

Originally posted by p2p
io sto usando un RB...

Beh, anche un RB Albero può avere un suo ordine logico e permetterti di trovare gli elementi con prefisso alfa in fretta senza scorrere tutto...

Per l'inserimento degli ostacoli cmq anch'io mi giro tutto l'alberello degli automi... :sad: :D

__________________
Teju.it - Una vita da raccontare


Posted by Dav83 on 24-01-2005 22:55:

Gira che ti rigira io ho usato due liste. Poco inefficiente ma molto pratico.Per le operazioni d'inserimento che sono quelle che almeno nell'input del prof. si ripetono più spesso ho usato l'inserimento in testa e per gli spostamenti...bè non ti resta che scorrere...
Ho un problema sull'output dell'automa 001.
Quando inserisco l'automa 0010 le coordinate diventano identiche e anche la direzione...
in pratica ottengo
001 16 0 W (dovrebbe essere S)
0010 16 0 W
quendo poi faccio gli ultimi spostamenti ottnego questa cosa curiosa:
(
001 15 1 W
0010 15 -1 W
)
Suggerimenti???

__________________
Ciao miao bau


Posted by p2p on 25-01-2005 08:32:

Originally posted by Teju
Beh, anche un RB Albero può avere un suo ordine logico e permetterti di trovare gli elementi con prefisso alfa in fretta senza scorrere tutto...

Per l'inserimento degli ostacoli cmq anch'io mi giro tutto l'alberello degli automi... :sad: :D

purtroppo non è cosi, xchè se per esempio il prefisso è 1 ci saranno nodi prefissi a 1 sia a sx della radice che a dx, quindi un confronto per chiavi (i nomi degli automi nel mio caso) non servirebbe.Per esempio posso avere 100 (un 4 ) in un sottoalbero sinistro e un 1111 (un 15) in un sottoalbero destro, quindi se il prefisso è 1 e io seguo la ricerca in base ai valori mi perdo una chiave.:evil: :twisted:

azzz.......

certo l inserimento e la cancellazionesono + efficienti, ma x 2 operazioni piu' veloci valeva la pena????


Posted by mitnik on 25-01-2005 09:05:

ma come avete implementato lo spostamento di un automa?


Posted by Teju on 25-01-2005 09:07:

Originally posted by p2p
purtroppo non è cosi, xchè se per esempio il prefisso è 1 ci saranno nodi prefissi a 1 sia a sx della radice che a dx
[...]
certo l inserimento e la cancellazionesono + efficienti, ma x 2 operazioni piu' veloci valeva la pena????

C'hai ragione, avevo confuso le strutture dati... :-D
...secondo me l'operazione più ricorrente è quella di movimento, perchè su ogni segnale ci sono moltissimi movimenti su diversi automi, dunque segnale() dovrebbe essere la funzione che più è veloce!

__________________
Teju.it - Una vita da raccontare


Posted by Teju on 25-01-2005 09:09:

Originally posted by Dav83
Ho un problema sull'output dell'automa 001.
Quando inserisco l'automa 0010 le coordinate diventano identiche e anche la direzione...
in pratica ottengo
001 16 0 W (dovrebbe essere S)
0010 16 0 W
quendo poi faccio gli ultimi spostamenti ottnego questa cosa curiosa:
(
001 15 1 W
0010 15 -1 W
)

Beh... detto così può essere tutto!! Eheh!! :D :D
Dipende da come fai l'inserimento di nuovi automi e da come fai il movimento... con i soli risultati è dura aiutarti! :approved:

__________________
Teju.it - Una vita da raccontare


Posted by Teju on 25-01-2005 09:20:

Originally posted by mitnik
ma come avete implementato lo spostamento di un automa?

Prima di tutto devi trovare quali sono gli automi che ti interessano nel movimento, poi, per ciascuno, lanci una funzione che calcola il movimento:
- cerca aventuali ostacoli sulla sua strada
- se non ne incontra arriva al punto di destinazione
- se li incontra rimbalza di quanti spostamenti gli mancano in direzione opposta

__________________
Teju.it - Una vita da raccontare


Posted by mitnik on 25-01-2005 09:36:

Originally posted by Teju
Prima di tutto devi trovare quali sono gli automi che ti interessano nel movimento, poi, per ciascuno, lanci una funzione che calcola il movimento:
- cerca aventuali ostacoli sulla sua strada
- se non ne incontra arriva al punto di destinazione
- se li incontra rimbalza di quanti spostamenti gli mancano in direzione opposta



ok grazie ma il mio problema è quello di aggiornare la direzione dell'automa. Dici che è sufficiente tenere un puntatore fisso su tale automa e una volta finito lo spostamento aggiorno l'utoma puntato?


Posted by Teju on 25-01-2005 09:47:

Originally posted by mitnik
ok grazie ma il mio problema è quello di aggiornare la direzione dell'automa. Dici che è sufficiente tenere un puntatore fisso su tale automa e una volta finito lo spostamento aggiorno l'utoma puntato?

Si, io ho nella funzione il puntatore all'automa corrente e, ad ogni fine movimento aggiorno coordinate e direzione

__________________
Teju.it - Una vita da raccontare


Posted by p2p on 25-01-2005 11:36:

voi per vedere se nelle coordinate di un ostacolo cè un automa come avete fatto?
io avevo pensato a 2 for che ciclando passano ad una funzione i vari punti compresi tra x0 x1 e y0 y1 e questa controlla nelle x e y degli automi se trova una corrispondenza....
voi come avete fatto?


Posted by LoneWolf on 25-01-2005 13:43:

Scusate ragazzi se non mi sono fatto sentire da sabato sera, ma da uando ho finito il progetto (appunto sabato sera) ho fatto baldoria tutto il tempo.

Come vi avevo già accennato, io ho usato B-albero, che a mio parere è la migliore struttura per la ricerca su prefissi di testo (stringhe), mentre gli altri alberi lavorano bene solo su chiavi numeriche.

Per gli ostacoli ho utilizzato una lista non ordinata, tanto me la devo sfogliare tutta, quindi l'ordine non mi serviva.

Per la questione delle collisioni con gli ostacoli, ho trovato un sistema spettacolare, ma non ve lo posso confidare.

Sorry!:D

__________________
"It is totally natural to die or to be killed, rather than just to live without a certain purpose"


Posted by dirkpitt on 25-01-2005 18:13:

Postate qualche esempio... :D

__________________
Esistono 10 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono... :D


Posted by andrea on 26-01-2005 07:17:

Ciao ragazzi, ieri sono arrivato anche io al grande momento di veder funzionare l'esempio del prof. Onestamente non ho fatto, e forse non farò, tanti altri esempi per non andare a cercarmi rogne. Ringrazio chi ha avuto l'intuizione del "riposizionere" perchè o non ci sarei mai arrivato o avrei perso un casino di tempo. Se cambiassi idea e decidessi di inventarmi qualche esempietto ve lo posto.

Ho una curiosità: ma se si deve consegnare entro il 30, come fa uno ad andare a fare l'esame il 31 di gennaio? Come ci si organizza?


Posted by LoneWolf on 26-01-2005 13:29:

Ragazzi, toglietemi una curiosità: quando fate la crea(), ipoteticamente bisogna distruggere le strutture di memoria eventualmente già presenti, per poi ricreare quelle vuote per il nuovo piano.

Voi fate la free()? E se la fate, la fate solo sul primo elemento o svuotate tutti i nodi degli alberi/elementi delle liste?

__________________
"It is totally natural to die or to be killed, rather than just to live without a certain purpose"


Posted by andrea on 26-01-2005 13:54:

sì, bisogna fare la free assolutamente di tutti gli elementi delle strutture dati, perchè altrimenti rimangono allocati. Ma se continui ad allocare senza liberare, lo spazio di memoria libero diminuisce fino, ipoteticamente, a non averne più e questo sarebbe un problema.


All times are GMT. The time now is 01:11. Pages (25): « First ... « 17 18 19 20 [21] 22 23 24 25 »
Show all 366 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.