Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-12-2005, 11:21   #1
*MATRIX*
Senior Member
 
Iscritto dal: Aug 2005
Messaggi: 439
Complessità di tempo ciclo for

Ciao raga sapreste dirmi qual'è la complessità di una procedura che al suo interno ha due cicli for non annidiati??? Non so se è 0(n) oppure 0(n^2)
grazie per le risposte bye bye
*MATRIX* è offline   Rispondi citando il messaggio o parte di esso
Old 06-12-2005, 11:56   #2
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Immagino che i cicli for di cui parli servano a far qualcosa, e che tu stia cercando di valutare, appunto, detta complessita'.

Cmq se non sono annidati, e' O(n).
Il fatto che siano due cicli non annidati, altro non fa che cambiare una costante, che come ben sai viene 'annegata' nell'operatore in questione

High Flying
Sottovento
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 06-12-2005, 12:07   #3
*MATRIX*
Senior Member
 
Iscritto dal: Aug 2005
Messaggi: 439
Cmq scusami avevo sbaglito a scrivere il mio dubbio era tra O(n) e 2*0(n)
*MATRIX* è offline   Rispondi citando il messaggio o parte di esso
Old 06-12-2005, 13:07   #4
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Nessuna scusa, mica hai offeso qualcuno
Cmq e' O(n)
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 06-12-2005, 20:21   #5
*MATRIX*
Senior Member
 
Iscritto dal: Aug 2005
Messaggi: 439
grazie
*MATRIX* è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2005, 08:49   #6
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Quote:
Originariamente inviato da *MATRIX*
Cmq scusami avevo sbaglito a scrivere il mio dubbio era tra O(n) e 2*0(n)

diciamo che 2O(n) non si può dire...poichè O(n) è una stima asintotica della complessità, esempio:

Se il calcolo della complessità delle varie parti di un algoritmo era: 3N + 5N + 2 allora la sua complessità era O(n).

Mentre se veniva, ad esempio, 3N + 5N + N^2 + 2 allora la complessità ora O(n^2).

Questo per dire che quando si parla in termini di complessità asintotiche, nelle loro tipologie, si da una stima...un po come quando dici "equazioni di primo grado" ed "equazioni di secondo grado", indichi una categoria ma non sono tutte uguali.
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2005, 11:25   #7
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Esattamente. Poi c'è anche da dire che se il primo ciclo è O(n) e il secondo è O(m), la complessità sarà O(n + m).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2005, 20:33   #8
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originariamente inviato da cdimauro
Esattamente. Poi c'è anche da dire che se il primo ciclo è O(n) e il secondo è O(m), la complessità sarà O(n + m).


supponendo che il numero di esecuzioni del primo ciclo for sia dell'ordine O(n) e che quello del secondo sia di O(m) la complessità totale è dell'ordine di O(n * m).
poi se m si può approssimare ad n possiamo dire che a complessità è di O(n^2)
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2005, 21:50   #9
beppegrillo
Senior Member
 
L'Avatar di beppegrillo
 
Iscritto dal: Mar 2004
Messaggi: 1455
Ma infatti anche a me risulta sia O(n^2)..
__________________
Ciao ~ZeRO sTrEsS~
beppegrillo è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2005, 22:12   #10
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originariamente inviato da beppegrillo
Ma infatti anche a me risulta sia O(n^2)..
ripeto che non è O(n^2)... è O(n^2) solo se m è dello stesso ordine di grangezza di n, cioè se m è teta grande di n.
se vogliamo proprio fare i pignoli la complessità dell'algoritmo rispetto ad n e m che sono riepsttivamente l'ordine di grandezza del numero di esecuzioni del primo for e di quello annidato può essere di uno di questi casi:

- n ~ O(m) --> m ~ o(n) --> complessità O(n)
- n ~ m (teta grande di m, non c'è il simbolo sulla tastiera ) --> complessità O(n^2)
- n ~ o(m) --> m ~ O(n) --> complessità O(m)
- m ~ teta di log(n) --> complessità O(n * log(n))
- n ~teta di log(m) --> complessità O(m * log(m))

Ultima modifica di VegetaSSJ5 : 07-12-2005 alle 22:15.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2005, 23:25   #11
fuocofatuo
Senior Member
 
L'Avatar di fuocofatuo
 
Iscritto dal: Nov 2005
Città: Bordeaux - France
Messaggi: 364
Ma lui ha detto che i cicli NON sono annidiati, perciò è corretto O(n+m).
__________________
- fuocofatuo -
fuocofatuo è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2005, 23:46   #12
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originariamente inviato da fuocofatuo
Ma lui ha detto che i cicli NON sono annidiati, perciò è corretto O(n+m).
hai ragione non avevo letto bene!
anche in questo caso però devo correggervi. per definizione, le notazioni di O (o grande), o (o piccolo) e § (scusate se la indico così, visto che non c'è il simbolo sulla tastiera, ma voglio intendere teta grande) non riguardano le costanti moltiplicative (figuriamoci quindi l'addizione...). questo vuol dire che se io ho un numero n scrivere O(n) e scrivere O(n*10000000000000000) è la stessa cosa in quanto queste sono notazione riferite a variabili che tendono a + infinito per cui qualsiasi costante moltiplicativa (che sia 9999999999 oppure 0,0000000000001) non avrebbe peso ai fini del calcolo dell'ordine di grandezza, che è il vero scopo per cui esistono queste notazioni.
in questo specifico problema quindi, la complessità dell'intero algoritmo è pari a:

- n ~ o(m) --> complessità O(m)
- m ~ o(n) --> complessità O(n)
- m ~ teta di log(n) --> complessità O(n)
- n ~ teta di log(m) --> complessità O(m)
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2005, 23:56   #13
Brazorv
Member
 
Iscritto dal: Aug 2004
Messaggi: 156
Quote:
Originariamente inviato da VegetaSSJ5
hai ragione non avevo letto bene!
anche in questo caso però devo correggervi. per definizione, le notazioni di O (o grande), o (o piccolo) e § (scusate se la indico così, visto che non c'è il simbolo sulla tastiera, ma voglio intendere teta grande) non riguardano le costanti moltiplicative (figuriamoci quindi l'addizione...). questo vuol dire che se io ho un numero n scrivere O(n) e scrivere O(n*10000000000000000) è la stessa cosa in quanto queste sono notazione riferite a variabili che tendono a + infinito per cui qualsiasi costante moltiplicativa (che sia 9999999999 oppure 0,0000000000001) non avrebbe peso ai fini del calcolo dell'ordine di grandezza, che è il vero scopo per cui esistono queste notazioni.
in questo specifico problema quindi, la complessità dell'intero algoritmo è pari a:

- n ~ o(m) --> complessità O(m)
- m ~ o(n) --> complessità O(n)
- m ~ teta di log(n) --> complessità O(n)
- n ~ teta di log(m) --> complessità O(m)
secondo me stai facendo un pò di confusione. Tu stai parlando di costanti, ma in questo caso n ed m non sono costanti, ma sono le variabili che definiscono la complessità dell'algoritmo, per cui ha senso scrivere O(n+m).
Brazorv è offline   Rispondi citando il messaggio o parte di esso
Old 08-12-2005, 00:05   #14
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originariamente inviato da Brazorv
secondo me stai facendo un pò di confusione. Tu stai parlando di costanti, ma in questo caso n ed m non sono costanti, ma sono le variabili che definiscono la complessità dell'algoritmo, per cui ha senso scrivere O(n+m).
non ci siamo capiti, cerco di essere più chiaro...

- se n è minore di m (ovvero n~ o(m)) allora non ha senso sommare ad m che è di almeno un ordine di grandezza superiore un numero n di grandezza inferiore. si deduce che la complesità in questo caso è pari a O(m)
- se n è magigore di m (ovvero m~ o(n)) vale il discorso contrario e la complessità è O(n)
- se n e m sono dello stesso ordine di grandezza allora dire O(n+m) significherebbe dire O(2*n) oppure O(2*m) che secondo queste notazioni equivarrebbe a dire O(n) oppure O(m)

spero di essere stato più chiaro...

EDIT
se n e m sono dello stesso ordine di grandezza allora vorrebbe dire che O(n+m) è assimilabile a O(2*n) ma anche a O(10000000000*n) - con la stessa cosa che vale anche per m. quindi più in generale O(n+m) ~ O(k*n) ~ O(k*m) con k costante.

Ultima modifica di VegetaSSJ5 : 08-12-2005 alle 00:08.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 08-12-2005, 00:16   #15
Brazorv
Member
 
Iscritto dal: Aug 2004
Messaggi: 156
Quote:
Originariamente inviato da VegetaSSJ5
non ci siamo capiti, cerco di essere più chiaro...

- se n è minore di m (ovvero n~ o(m)) allora non ha senso sommare ad m che è di almeno un ordine di grandezza superiore un numero n di grandezza inferiore. si deduce che la complesità in questo caso è pari a O(m)
- se n è magigore di m (ovvero m~ o(n)) vale il discorso contrario e la complessità è O(n)
- se n e m sono dello stesso ordine di grandezza allora dire O(n+m) significherebbe dire O(2*n) oppure O(2*m) che secondo queste notazioni equivarrebbe a dire O(n) oppure O(m)

spero di essere stato più chiaro...

EDIT
se n e m sono dello stesso ordine di grandezza allora vorrebbe dire che O(n+m) è assimilabile a O(2*n) ma anche a O(10000000000*n) - con la stessa cosa che vale anche per m. quindi più in generale O(n+m) ~ O(k*n) ~ O(k*m) con k costante.
tu fai delle supposizioni sulle variabili n ed m, ma ogni istanza del problema può avere diversi valori di n e di m, ed in generale noi non possiamo sapere che relazione ci sia tra n ed m. La notazione O(n+m) serve ad indicare che l'algoritmo dipende in modo lineare dai paramtri n ed m.
Brazorv è offline   Rispondi citando il messaggio o parte di esso
Old 08-12-2005, 00:21   #16
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originariamente inviato da Brazorv
tu fai delle supposizioni sulle variabili n ed m, ma ogni istanza del problema può avere diversi valori di n e di m, ed in generale noi non possiamo sapere che relazione ci sia tra n ed m. La notazione O(n+m) serve ad indicare che l'algoritmo dipende in modo lineare dai paramtri n ed m.
si per questo si dovrebbe esaminare il problema, ma quello che ho detto rimane comunque vero, è matematica, mica un'opinione!
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 08-12-2005, 00:26   #17
Brazorv
Member
 
Iscritto dal: Aug 2004
Messaggi: 156
si dal punto di vista della complessità O(n) O(m) oppure O(n+m) sono tutti algoritmi lineari, il discorso che volevo fare io è che in questo caso è giusto scrivere O(n+m) perchè si specifica meglio da cosa dipende la complessità dell'algoritmo. Non è solo una questione matematica.
Brazorv è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2005, 17:09   #18
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da VegetaSSJ5
si per questo si dovrebbe esaminare il problema, ma quello che ho detto rimane comunque vero, è matematica, mica un'opinione!
Non c'è nulla da esaminare: non ti puoi mettere a vedere caso per caso.
Infatti la notazione che ho riportato è quella giusta quando si ha che la complessità (o velocità) di un algoritmo dipende da più variabili.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2005, 17:21   #19
beppegrillo
Senior Member
 
L'Avatar di beppegrillo
 
Iscritto dal: Mar 2004
Messaggi: 1455
Quote:
Originariamente inviato da beppegrillo
Ma infatti anche a me risulta sia O(n^2)..
avevo capito che si trattasse di due cicli for su n .
__________________
Ciao ~ZeRO sTrEsS~
beppegrillo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Roscosmos ha lanciato il satellite meteo...
Starship Troopers: Ultimate Bug Wars, to...
Il razzo spaziale europeo Ariane 6, per ...
Oracle Fusion Cloud Applications si pote...
OHB Italia svilupperà un satellit...
Fortinet: "Ora abbiamo una chance d...
Linux Mint chiude con gli aggiornamenti ...
Compressori portatili auto in sconto su ...
Durante il lancio della missione USSF-87...
Dopo il ritiro di Intel da Magdeburgo, l...
Xiaomi 15T scende a 388€ su Amazon: 12GB...
MSI Afterburner: arriva il monitoraggio ...
Missione cinese Chang'e-6: confermata l'...
Addio esenzione sotto i 150 euro: l'UE i...
Allarme riavvii su Windows 11 dopo il ri...
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: 02:07.


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