Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-04-2009, 15:32   #1
L\'Esecutore
Senior Member
 
L'Avatar di L\'Esecutore
 
Iscritto dal: Jan 2002
Città: Provincia Varese
Messaggi: 217
Scelta struttura dati

Devo realizzare il progetto spiegato dopo in C, non vi chiedo grossi aiuti, solo di aiutarmi a scegliere le strutture dati più adeguate. Non ci possono essere vincoli di dimensione, quindi le matrici vanno escluse. Devo tenere conto delle prestazioni quindi le scelte devono portarmi a evitare che le operazioni richieste abbiano costi eccessivi. Grazie mille, ogni aiuto è gradito

Quote:
Le tessere del mosaico sono costituite da quadrati di lato 1. Due tessere sono definite adiacenti se i corrispondenti quadrati hanno un lato in comune. Un mosaico ` un insieme di tessere connesse almeno per un lato: cioè deve essere possibile percorrere l’intero mosaico muovendosi tra tessere adiacenti.
Il programma dovrà definire una struttura dati per l’oggetto mosaico e permettere le seguenti operazioni:
- nuovo()
Inizializza un nuovo mosaico con una sola tessera in posizione (0,0) (definite un opportuno sistema di riferimento), eventualmente cancellando il mosaico precedente.
- inserisci a caso()
Aggiunge al mosaico corrente un quadrato in una posizione scelta a caso tra le ammissibili (ossia con probabilità pari a 1 diviso il numero di posizioni ammissibili).
- inserisci(x, y)
Aggiunge al mosaico un quadrato in posizione (x, y) se la posizione è ammessa, altrimenti segnala un errore.
- perimetro()
Restituisce il perimetro del mosaico corrente (ossia il numero di lati liberi da quadrati)
- ordine()
Restituisce l’ordine del mosaico, ossia la lunghezza del lato del più piccolo quadrato che può contenere il mosaico.
- costruisci(n)
Costruisce un mosaico formato da n quadrati invocando n volte l’operazione inserisci a caso().

(Mantenete una struttura dati apposita per le posizioni ammissibili, vi servirà per facilitare l’estrazione casuale di una posizione ammissibile nell’operazione inserisci a caso(). )
__________________
La risposta non la devi cercare fuori, la risposta è dentro di te. Epperò è ... quella sbagliata! - Quelo

Ultima modifica di L\'Esecutore : 03-04-2009 alle 15:36.
L\'Esecutore è offline   Rispondi citando il messaggio o parte di esso
Old 05-04-2009, 16:03   #2
L\'Esecutore
Senior Member
 
L'Avatar di L\'Esecutore
 
Iscritto dal: Jan 2002
Città: Provincia Varese
Messaggi: 217
Up
__________________
La risposta non la devi cercare fuori, la risposta è dentro di te. Epperò è ... quella sbagliata! - Quelo
L\'Esecutore è offline   Rispondi citando il messaggio o parte di esso
Old 05-04-2009, 16:19   #3
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Potresti usare un albero a quadranti. Non ho capito bene la distinzione tra ordine e perimetro ma dovrebbero diventare entrambi funzione della profondità dell'albero.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 05-04-2009, 16:27   #4
L\'Esecutore
Senior Member
 
L'Avatar di L\'Esecutore
 
Iscritto dal: Jan 2002
Città: Provincia Varese
Messaggi: 217
Io me lo sono immaginato come un piano cartesiano, la prima tessera sta in (0,0).
Se ho 3 tessere rispettivamente in(0,-1), (0,0), (0,1) il mio mosaico avrà ordine 3 e perimetro 8.
__________________
La risposta non la devi cercare fuori, la risposta è dentro di te. Epperò è ... quella sbagliata! - Quelo
L\'Esecutore è offline   Rispondi citando il messaggio o parte di esso
Old 05-04-2009, 17:06   #5
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Carta e penna alla mano dopo un paio di scarabocchi mi risulta papabile un quadtree costruito dal basso.

In pratica quando introduci la prima tessera crei un quadrante senza genitore di lato unitario e posizione (xa,ya)

Quando introduci la seconda tessera crei un secondo quadrante senza genitore di lato unitario e posizione (xb,yb)

Dopodichè unisci i due quadranti con un parente comune di lato Max(xb-xa, yb-ya)

In generale per unire due quadranti in un genitore devi determinare il minimo quadrante sufficiente a contenerli entrambi partendo dalla radice dell'albero.

Il quadrante esiste se la sua superficie è contenuta nella radice dell'albero. Altrimenti occorrerà congiungere la radice alla foglia inserendo tutti i nodi del ramo a cui la foglia appartiene.

Risulta a questo punto che il perimetro dell'albero sia il perimetro della radice e l'ordine il lato della stessa.

L'albero ti consente di determinare con efficienza se le posizioni astrattamente accessibili che crei quando introduci una nuova tessera siano effettivamente disponibili.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 05-04-2009, 18:03   #6
L\'Esecutore
Senior Member
 
L'Avatar di L\'Esecutore
 
Iscritto dal: Jan 2002
Città: Provincia Varese
Messaggi: 217
Non ho molta familiarità sui quadtree, ora vedo di fare qualche tentativo.
Grazie dell'aiuto, spero di riuscire a metterlo in pratica
__________________
La risposta non la devi cercare fuori, la risposta è dentro di te. Epperò è ... quella sbagliata! - Quelo
L\'Esecutore è offline   Rispondi citando il messaggio o parte di esso
Old 06-04-2009, 13:16   #7
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Io invece ti propongo tale classe (Beh, in C un insieme di strutture dati e di funzioni).
Per memorizzare le tessere del mosaico gia' inserite userei una Lista di coordinate.
Per memorizzare le posizioni papabili per i prossimi inserimenti userei un'altra Lista di coordinate, da aggiornarsi ogni volta che si inserisce una nuova tessera.
La funzione per verificare se una coordinata e' possibile e' banalmente la ricerca in quest'ultima lista.
le funzioni di inserimento e cancellazione, quest'ultima necessaria per la lista dei papabili, sarebbero quindi O(N Log N) come da lista.
La funzione perimetro dovrebbe essere semplicmente la lunghezza della lista dei papabili, quindi O(1). Non ho capito nel caso di buchi interni se il perimetro li deve considerare. Questo approccio lo farebbe.
Per la funzione ordine dovrebbe essere sufficiente tenere a mente la massima coordinata X e la massima coordinata Y (ed evenutlamente anche le minime, nel caso di coordinate negative), durante l'inserimento di una nuova tessera, quindi di nuovo O(1)


Poi in realta' io userei 2 Hashtable con chiave doppia al posto delle 2 liste, dove le 2 chiavi sarebbero ovviamente le coordinate.
In tal modo anche tutte le funzioni di inserimento e cancellazione sarebbero con complessita' O(1). Avresti quindi tutto in O(1), direi con conseguente massimo dei voti.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.

Ultima modifica di gugoXX : 06-04-2009 alle 13:20.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2009, 14:56   #8
L\'Esecutore
Senior Member
 
L'Avatar di L\'Esecutore
 
Iscritto dal: Jan 2002
Città: Provincia Varese
Messaggi: 217
La hashtable mi piace molto come soluzione, ma temo che per questo progetto sia fuori discussione
__________________
La risposta non la devi cercare fuori, la risposta è dentro di te. Epperò è ... quella sbagliata! - Quelo
L\'Esecutore è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
AMD alza l'asticella: Zen 6 è la ...
Il satellite spia russo Olymp-1 si &egra...
Rocket Lab prosegue l'assemblaggio del n...
Il Wet Dress Rehearsal della missione Ar...
31,4 Tbps: Aisuru sfonda il suo stesso r...
Giocattoli AI, una falla espone oltre 50...
OPPO Reno15 in viaggio con Gaia Gozzi: i...
Nuove revisioni per Abarth 600e: arrivan...
Intelligenza artificiale, re-training e ...
LG presenta a ISE 2026 la nuova serie di...
Alienware: disponibile in Italia il nuov...
Arrivano le bodycam sui treni di Ferrovi...
Nike taglia 775 posti negli USA: l'autom...
Crimson Desert si mostra in un nuovo gam...
Addio transistor? Questo dispositivo usa...
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: 07:59.


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