Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
MiniLED di fascia media con local dimming a 192 zone, 144 Hz nativi e audio firmato Devialet. La prova strumentale riscontra colori affidabili e gaming reattivo, per un prodotto molto accessibile e convincente. Ma la soundbar aggiuntiva è quasi d'obbligo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-09-2005, 10:48   #1
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
[C] Algoritmi e Strutture dati

per l'università ci hanno dato da fare un progetto per il corso di algoritmi

http://homes.dsi.unimi.it/~fiorenti/labalg04/ape.pdf

si tratta di usare strutture dati tipo alberi binari, liste di adiacenze, algoritmi per il calcolo dei cammini


qualcuno ne mastica?
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2005, 16:53   #2
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
dunque, per quanto riguarda la struttura dei prati non so ancora cosa utilizzare, è chiaro che sovraposti o meno no ci interessa molto (quando inserisci un prato se nessuno dei fiori gia esiste non è sovrapposto a nessuno e incremento la variabile globale di 1, se è sovrapposto qualche fiore il numero di campi non aumenta e il peso di quel fiore è sommato a quello gia esistente in quel punto)

il cammino è sempre lungo come la differenza Y1-Y0, da ogni fiore ci si sposta al + in tre altri fiori ui verticale, questo mi induce a pensare che tutti i cammini possibili siano un albero ternario e quello migliore sia quello con la foglia + pesante.

voi che dite?
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2005, 18:15   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Per i prati userei una matrice...

Ad esempio:

struct prato
{
int x0;
int y0;
int x1;
int y1;
int **fiori;
};

struct lista_prati
{
struct prato *p;
struct lista_prati next;
};

Ovviamente fiori sarà una matrice allocata dinamicamente...

Trovare la qualità di un fiore ti fai una funzione int fiore(int x, int y); che scorrerà tutti i prati e se x e y appartengono ad un prato (anche più di uno) si somma il valore contenuto nella matrice dei fiori al totale...

Per il cammino...fare un albero non è male, ma attento ad usare la ricorsione...i cammini possibili sono tanti...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2005, 19:43   #4
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
mhmm nelle specificche del progetto scondigliano una matrice
Codice:
Si richiede di implementare una struttura dati effciente che permetta di 
eseguire le operazioni seguenti
(si tenga presente che la minima porzione rettangolare di piano contenente 
tutti i prati può essere
molto grande rispetto al numero di prati e fiori presenti nel piano, quindi non 
e' sicuramente efficiente
rappresentare il piano mediante una matrice).
il collega con cui faccio il progetto è convinto nell'usare gli RB alberi in quanto sono efficienti e per qualsiasi operazione impiegano un tempo log(n)...

ma l'implementazione di un RB albero mi spaventa...

per quanto riguarda poi l'algoritmo per il calcolo del cammino migliore non saprei cosa usare.
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2005, 19:51   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
La matrice che ho scritto sopra è per un prato...non per il piano !!!
Lì viene sconsigliata la matrice per il piano...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2005, 19:55   #6
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
mi consigli di utilizzare una matrice per ogni prato? mhmm alla fine potrei utilizzare un unica struttura per tutti i prati (mantenendo una variabile globale che mi dica quanti Campi)

una matrice fatta nel modo che mi dici ha cmq un tempo di ricerca\inserimento\cancellazione superiore al RB-Albero, semplicemente sono indeciso per quanto riguarda l'algoritmo di ricerca del cammino ottimo.
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2005, 19:58   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da TorpedoBlu
una matrice fatta nel modo che mi dici ha cmq un tempo di ricerca\inserimento\cancellazione superiore al RB-Albero, semplicemente sono indeciso per quanto riguarda l'algoritmo di ricerca del cammino ottimo.
Cancellazione di che ?!?!? Di un prato ? Ha un tempo O(n) con il metodo che ti dico io...

lista_prati è una lista che contiene tutti i prati... Se ti viene data una coordinata cancelli tutti i prati che includono quella coordinata...basta scorrere la lista (O(n)) e verificare, prato per prato, se la coordinata è cmprese nelle coordinate del prato (O(1))
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2005, 20:01   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Qualsiasi operazione sulla lista dei prati di inserimento, cancellazione, calcolo della qualità di un fiore ha un tempo max O(n)...e si può fare banalmente in modalità non ricorsiva...e sono operazioni semplicissime da realizzare, max 6-7 istruzioni...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2005, 20:06   #9
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
Quote:
Originariamente inviato da cionci
Qualsiasi operazione sulla lista dei prati di inserimento, cancellazione, calcolo della qualità di un fiore ha un tempo max O(n)...e si può fare banalmente in modalità non ricorsiva...e sono operazioni semplicissime da realizzare, max 6-7 istruzioni...
ti ringrazio tanto per i chiarimenti

ora però mi risulta difficile capire come calcolare il cammino migliore...
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2005, 20:09   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Spiegami un po' meglio... Devi cercare un cammino minimo... Se ci sono più cammini minimi a parità di passi devi trovare quello con qualità massima ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2005, 20:13   #11
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
dunque si, dal punto di vista della lunghezza del cammino, visto che ci si può muovere solo in diagonale e o verso l'alto (nord-est/nord/nord-ovest), i cammini esistenti tra 2 punti non potendo tornare indietro sono tutti uguali.
quindi se ci sono 1 o + cammini deve scegliere quello con il peso maggiore (la somma dei pesi di ogni fiore).
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2005, 09:37   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Hai mai sentito parlare di back tracking ?

Allora...parti dal nodo iniziale...e scegli i possibili nodi destinazione... Un nodo è ammissibile se c'è un fiore sopra (non so se questa supposizione è giusta)...
Per tutti i nodi ammissibili calcoli la distanza geometrica fra il nodo ammissibile e quello di destinazione... Ti muovi sul nodo a distanza geometrica minore... Se ad un certo punto da un nodo non iresci a trovare un nodo ammissibile che non sia già stato visitato elimini torni al nodo precedente ed elimini il nodo corrente dal percorso...

Arrivato al nodo finale ti memorizzi il percorso fatto, la somma dei fiori e il numero di passi fatti...
Torni indietro all'ultimo nodo ammissibile, lo elimini e torni ancora al nodo ammissibile precedente...scegli di muoverti in un nodo ammissibile che ha distanza minima fra quelli ammissibili e così via...

Ogni volta che arrivi al nodo finale se il numero dei passi è minore di quello precedente (se è uguale a discriminare è la somma dei fiori) memorizzi il percorso e togli l'ottimo precedente...

Attenzione che un nodo può essere attraversato da percorsi diversi...
Ad esempio due percorsi diversi possono avere gli stessi nodi tranna che per un nodo diverso...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2005, 10:51   #13
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
Quote:
Originariamente inviato da cionci
Hai mai sentito parlare di back tracking ?

Allora...parti dal nodo iniziale...e scegli i possibili nodi destinazione... Un nodo è ammissibile se c'è un fiore sopra (non so se questa supposizione è giusta)...
Per tutti i nodi ammissibili calcoli la distanza geometrica fra il nodo ammissibile e quello di destinazione... Ti muovi sul nodo a distanza geometrica minore... Se ad un certo punto da un nodo non iresci a trovare un nodo ammissibile che non sia già stato visitato elimini torni al nodo precedente ed elimini il nodo corrente dal percorso...

Arrivato al nodo finale ti memorizzi il percorso fatto, la somma dei fiori e il numero di passi fatti...
Torni indietro all'ultimo nodo ammissibile, lo elimini e torni ancora al nodo ammissibile precedente...scegli di muoverti in un nodo ammissibile che ha distanza minima fra quelli ammissibili e così via...


Ogni volta che arrivi al nodo finale se il numero dei passi è minore di quello precedente (se è uguale a discriminare è la somma dei fiori) memorizzi il percorso e togli l'ottimo precedente...

Attenzione che un nodo può essere attraversato da percorsi diversi...
Ad esempio due percorsi diversi possono avere gli stessi nodi tranna che per un nodo diverso...
dunque le sole mosse ammissibili sono
X1=X0 || X1=X0+1 || X1=X0-1
Y1=Y0+1

quindi ci si muove solo in 3 direzioni (diagonale destra|sinistra o verticale)
per questo pensavo ad un albero ternario per l'insieme dei cammini possibili

a questo punto se ci sono + di un cammino possibile bisogna scegliere quello con il peso maggiore.

ammesso di fare una lista di liste, come è possibile?
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2005, 07:26   #14
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
up
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2005, 14:02   #15
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
qui c'è il codice degli alberiRB, vorrei modificarlo per avere la possibilità di gestirlo con una coppia di chiavi (ascissa e ordinata) e non una sola

la struttura principale per capirci è
Codice:
typedef int key;

typedef enum { red, black } color;

struct rbnode {
	key v;
	color c;
	struct rbnode *left, *right, *up;
}; 

typedef struct rbnode rbnode;

typedef struct {
	rbnode *root, *nil;
} rbtree;
(tra l'altro non so come inserire il valore del dato, qui vedo solo la chiave ed il colore)

qualche anima pia che guarda il file in allegato e mi dice dove effettuare le modifiche
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2005, 13:31   #16
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
up
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
SpaceX Starship: Ship 40 ha eseguito un ...
Redmi Note 17 a un passo dal debutto, ma...
Gli aumenti di prezzo del PS Plus potreb...
Almeno 64 GB di RAM per giocare? Il caso...
Gemini si integrerà con le auto e potrà ...
Addio a OxygenOS di OnePlus e alla Realm...
Intel conferma l'aumento dei prezzi su C...
In vendita Withings BodyFit, molto più d...
Inkterface: Steam Machine ospita un pann...
Stare seduti oltre 30 minuti di fila aum...
A Milano l'Italia ha firmato la sovranit...
Cos'è PeerTube, la piattaforma di...
In 12 articoli TOP c'è il meglio ...
La pirateria è l'unica tutela per...
Roomba Plus 516 Combo in offerta a 479€:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v