.dsy:it. Pages (18): « First ... « 4 5 6 7 [8] 9 10 11 12 » ... Last »
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 Zoom (http://www.dsy.it/forum/showthread.php?threadid=13146)


Posted by eskimo on 23-09-2004 15:39:

se la funzione ti dice di eliminare k x y devi eliminare la cella di coordinate x, y quando la risoluzione è k: si parla direttamente di 1celle solo se ti chiede la kcella(1, x, y).... se invece quel k ha un valore diverso da 1 devi eliminare TUTTE le 1celle comprese (e presenti) nell'intevallo kx <= ascissa < k(x+1) e
ky <= ordinata < k(y+1)
ascissa e ordinata sono le coordinate della 1cella
chiaro??? spero di esserlo stato! :) :)


Posted by ghily on 23-09-2004 16:12:

Faccio un esempio pratico,sperando che sia chiaro, perchè mi sembra sempre la cosa migliore.Ammettiamo che la mia risoluzione sia 3. La chiamata elimina (2,3) va a chiamare la cella che ha vertice in basso a sinistra (6,9) e non quella che ha (2,3), giusto? Una volta trovata questa cella vedo se questa cella è occupata.Questo lo vedo regolandomi col parametro di riempimento (nessuna menzione sulle 1-celle ancora).In caso affermativo la svuoto, cioè le sue 1-celle occupate saranno zero. IN caso contrario non faccio nulla.
Quello che mi domando io è:
ammettiamo che la cella (7,9) sia occupata e che la k-cella che la contiente sia anch'essa occupata.Mi interessa sapere che vado a liberare proprio quella cella? oppure mi interessa solo che ho liberato la k-cella, cioè che la k-cella ora non contiene più celle occupate. Praticamente sulle 1-celle non si lavora mai in maniera diretta.

Spero sia chiaro.

Chao
Roby


Posted by Skilotto83 on 23-09-2004 19:12:

Originally posted by ghily
Finalemtne ho dato editoria ed ora posso concentrarmi sul progetto.Il tempo è poco ma speriamo in bene.Una cosa ancora non ho capito: ma queste 1-celle sono veramente così importanti? Mi spiego meglio: quale è l'utilità di sapere che nella k-cella (k,x,y) è contenuta percisametne quella cella? Se non mi sfugg eniete nel testo non c'è nessuna funzione che ti chiede di ritornare 1-celle.L'importante è sapere QUANTE (non quali) celle sono contenute nella k-celle selezionata. Sbaglio??

Altra cosa che non mi è chiara.Nella funzione elimina (k,x,y) la cella che è da andare a trovare è la cella che ha coordinate (kx,ky) ecc. ? Oppure la 1-cella (k,y???

Grazie
Chao
Roby


Per sapere se due celle sono adiacenti(e quindi hanno un punto in comune) devi sapere la posizione di tutte le singole celle della k-cella....e il diskorso vale anke se improvvisamente cambi risoluzione...altrimenti dovresti ripetere tutto ogni volta...

__________________
"Why, Sir, you find no man at all intellectual who is willing to leave London.
No, Sir, when a man is tired of London, he is tired of life; for there is in London all that life can afford."
(DR SAMUEL JOHNSON 1777)

MSN andrea.poretti(at)hotmail.it


Posted by contezer0 on 24-09-2004 01:11:

Originally posted by Skilotto83
Per sapere se due celle sono adiacenti(e quindi hanno un punto in comune) devi sapere la posizione di tutte le singole celle della k-cella....e il diskorso vale anke se improvvisamente cambi risoluzione...altrimenti dovresti ripetere tutto ogni volta...


io pensavo che due k celle fossero adiacenti se occupate (ovvero il numero di 1 celle contenute supera la "soglia di carico") e se si "toccano" almeno in un angolo!
almeno...nell'esempio del testo del progetto ci sono delle 3-celle adiacenti le cui 1-celle pero' non lo sono...


Posted by contezer0 on 24-09-2004 01:31:

Originally posted by eskimo
oppure mantenere una lista semplice, sulla quale cercherei in questo modo: ogni kcella ha una x, y di base; questo indice lo memorizzo in un puntatore (che modifico ogni volta che la mia attenzione si sposta su una nuova kcella), così so che per cercare le altre 1celle parto sempre da quel punto e non ogni volta dall'inizio della lista.

Seocondo voi quale metodo è più performante o comunque migliore???
Spero di esser stato chiaro
P. thx!!!! :) :)


Ma in questo modo devi mantenere ordinata la lista delle 1-celle, giusto? quindi hai un costo N per inserimento e cancellazione, e poi in che modo terresti ordinata questa lista per renderla "consistente" col puntatore alla x,y di base di una k-cella?

io tifo albero binario...ma suppongo ci voglia una variante bilanciata, se no si ha sempre un costo N nel caso peggiore.


Posted by contezer0 on 24-09-2004 01:39:

gia' che ci sono...
ma qualcuno allora la usa la tabella hash?
la fate a indirizzamento aperto e dimensione variabile oppure con concatenazione e dimensione fissa?

e per calcolare il blocco c'e' qualche metodo meno costoso del "prendo una cella, cerco tutti i suoi eventuali adiacenti, di questi cerco i *loro* adiacenti e cosi' via"?


Posted by Skilotto83 on 24-09-2004 06:52:

Originally posted by contezer0
io pensavo che due k celle fossero adiacenti se occupate (ovvero il numero di 1 celle contenute supera la "soglia di carico") e se si "toccano" almeno in un angolo!
almeno...nell'esempio del testo del progetto ci sono delle 3-celle adiacenti le cui 1-celle pero' non lo sono...


E' esattamente cosi'...ma devi sapere le coordinate dei punti della K-cella...altrimenti kome sai se tokka un altra k cella??

__________________
"Why, Sir, you find no man at all intellectual who is willing to leave London.
No, Sir, when a man is tired of London, he is tired of life; for there is in London all that life can afford."
(DR SAMUEL JOHNSON 1777)

MSN andrea.poretti(at)hotmail.it


Posted by contezer0 on 24-09-2004 11:31:

Originally posted by Skilotto83
E' esattamente cosi'...ma devi sapere le coordinate dei punti della K-cella...altrimenti kome sai se tokka un altra k cella??


beh a meno di un fattore k (la risoluzione) una k-cella non si comporta esattamente come una 1-cella?
quindi se abbiamo una risoluzione =1, chiamo la funzione che calcola i blocchi sulla struttura delle 1 celle.
la struttura che memorizza le k celle, che viene costruita quando si cambia la risoluzione, si puo' fare uguale, mettendo per ogni k-cella una x e una y (che nel piano sara' kx e ky), ovviamente dopo aver guardato quante 1 celle contiene.
In questo modo la funzione che calcola i blocchi puo' essere la stessa, no?


Posted by d0k on 24-09-2004 20:06:

Ho scelto la via + semplice. Liste linkate e passa la paura. Ora vi domando. Indipendentemente dalla struttura dati qualcuno ha idea della procedura (pseudocodice sarebbe troppo) che dalle k-celle passa ai k-blocchi? Avete qualche consiglio? Codice riciclabile che avete visto in giro? Attendo ansiogeno..
***
un uomo a 2 passi dal bruciarsi uno scritto.

__________________
o sei parte della soluzione o sei parte del problema.

recensioni libri informatica


Posted by Eruyomë on 25-09-2004 13:51:

Ciao volevo chiedere se nessuno ha avuto problemi con il confronto del peso di una k-cella con il p/q*k*k; poiché il primo è unsigned o int mentre il secondo è duoble o float e nel confonto mi escono risultati pazzi: del tipo un 3 che è 2.9 e diventa 2, un 3 che risulta minore di 3.0, approssimazioni che non fanno girare il programma a dovere, etc...
nessuno di voi sa come si può fare ad evitarlo?

__________________
Io sono la fata verde. Sono la rovina e il rimpianto, la vergogna e il disonore. Io sono la morte, io sono l'assenzio...


Posted by Eruyomë on 25-09-2004 15:08:

Occhei, come non detto! Ho risolto manipolando manualmente la parte dopo la virgola del double (un lavoraccio)...

__________________
Io sono la fata verde. Sono la rovina e il rimpianto, la vergogna e il disonore. Io sono la morte, io sono l'assenzio...


Posted by attila79 on 25-09-2004 16:55:

Cool

Una curiosità, piu o meno quante righe di codice vi sta uscendo il progetto? Spero di non essere l'unico ad amare il codice rindondante ...io viaggio intorno alle 900 righe, devo preoccuparmi?


Posted by Skilotto83 on 25-09-2004 19:12:

Originally posted by attila79
Una curiosità, piu o meno quante righe di codice vi sta uscendo il progetto? Spero di non essere l'unico ad amare il codice rindondante ...io viaggio intorno alle 900 righe, devo preoccuparmi?


No...vanno bene anke 2000...basta ke me lo passi e me lo fai kopiare...
:D

__________________
"Why, Sir, you find no man at all intellectual who is willing to leave London.
No, Sir, when a man is tired of London, he is tired of life; for there is in London all that life can afford."
(DR SAMUEL JOHNSON 1777)

MSN andrea.poretti(at)hotmail.it


Posted by contezer0 on 26-09-2004 01:56:

Originally posted by Eruyomë
Occhei, come non detto! Ho risolto manipolando manualmente la parte dopo la virgola del double (un lavoraccio)...


ma non bastava un cast?
cmq mi hai messo la pulce nell'orecchio...ora lavoro un po' su sta cosa!


Posted by contezer0 on 26-09-2004 01:56:

Originally posted by Eruyomë
Occhei, come non detto! Ho risolto manipolando manualmente la parte dopo la virgola del double (un lavoraccio)...


mi pare un po' inutile passare per i float o i double visto che tutto il resto e' basato sugli interi.

io ho fatto cosi',anche se non mi piace tanto (supponendo che p sia il minore)
k*k*p / q e memorizzo il risultato
k*k*p%q se e' diverso da 0, aggiungo 1 al risultato

in questo modo, se il fattore di riempimento ha un quoziente che divide k, la soglia sara' "precisa"...ad esempio se p/q e' 1/2 con risoluzioni pari (ovvero devo riempire almeno per meta' le k-celle)
altrimenti arrotondo per eccesso (tanto non potro' mai avere un "pezzo di 1-cella").
ci sono per caso dei metodi piu' carini?


All times are GMT. The time now is 14:34. Pages (18): « First ... « 4 5 6 7 [8] 9 10 11 12 » ... Last »
Show all 257 posts from this thread on one page

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