Mer 21 Agosto, 09:01:09 - 2019

Autore Topic: Homework 5  (Letto 9514 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Stefano Millozzi

  • Prof
  • Studente di Dottorato
  • ******
  • Post: 242
  • FeedBack: +29/-51
    • Mostra profilo
Re: Homework 5
« Risposta #105 il: Ven 28 Gennaio, 13:41:13 - 2011 »
In effetti anche secondo me il caso di dizionario vuoto rientra nel caso di chiave non trovata:
Se non c'è la chiave (e la chiave non c'è, essendo vuoto il dizionario), restituisci null. E' solo un caso più specifico.
Scusate avete ragione... restituisce null se la chiave nn e' presente.
Mi sn confuso... quando ho scritto ho pensato (non so perche') al metodo commonsKeys(...)
che invece, in caso di chiavi non comuni deve ritornare un set vuoto.

Offline Stefano Millozzi

  • Prof
  • Studente di Dottorato
  • ******
  • Post: 242
  • FeedBack: +29/-51
    • Mostra profilo
Re: Homework 5
« Risposta #106 il: Ven 28 Gennaio, 15:24:04 - 2011 »
Citazione
Scusate avete ragione... restituisce null se la chiave nn e' presente.
Mi sn confuso... quando ho scritto ho pensato (non so perche') al metodo commonsKeys(...)
che invece, in caso di chiavi non comuni deve ritornare un set vuoto.

In ogni caso il metodo findAll sara' considerato corretto sia se ritorna null, sia se ritorna una lista vuota (in caso di chiave nn presente)

Offline Stefano Millozzi

  • Prof
  • Studente di Dottorato
  • ******
  • Post: 242
  • FeedBack: +29/-51
    • Mostra profilo
Re: Homework 5
« Risposta #107 il: Lun 31 Gennaio, 09:22:59 - 2011 »
Sul sito del corso sono stati pubblicati i risultati dell'homework 5 e i risultati di riepilogo complessivi di tutti gli homework.

Offline emanuelino

  • Professore Associato
  • *
  • Post: 595
  • FeedBack: +64/-29
    • Mostra profilo
Re: Homework 5
« Risposta #108 il: Lun 31 Gennaio, 09:25:05 - 2011 »
Ottimo grazie professore! :)

Offline Wash_88

  • Studente di Dottorato
  • ***
  • Post: 239
  • FeedBack: +27/-3
    • Mostra profilo
Re: Homework 5
« Risposta #109 il: Lun 31 Gennaio, 10:06:34 - 2011 »
Grazie professore per la rapidità con cui ha fatto uscire i risultati!! :sisi:
« Si dice che il minimo battito d’ali di una farfalla sia in grado di provocare un uragano dall’altra parte del mondo »

Offline Gc24

  • Direttore di Dipartimento
  • ***
  • Post: 1637
  • FeedBack: +112/-34
    • Mostra profilo
Re: Homework 5
« Risposta #110 il: Lun 31 Gennaio, 10:37:18 - 2011 »
olè bonus 
:birra: al prof Millozzi!
((to.be())||(!to.be()))

Offline lelinolino

  • Guru
  • Professore Ordinario
  • *****
  • Post: 766
  • FeedBack: +81/-28
    • Mostra profilo
    • LeleWorlds
Re: Homework 5
« Risposta #111 il: Lun 31 Gennaio, 11:05:07 - 2011 »
olè bonus 
:birra: al prof Millozzi!

mi associo al brindisi! :)

Offline Stefano Millozzi

  • Prof
  • Studente di Dottorato
  • ******
  • Post: 242
  • FeedBack: +29/-51
    • Mostra profilo
Re: Homework 5
« Risposta #112 il: Lun 31 Gennaio, 11:06:15 - 2011 »
Sul sito c'era una versione vecchia degli esiti x cui non c'era corrispondenza con quanto poi era riportato nel dettaglio dei test: l'ho appena aggiornata.
Qualche NOT PASSED dovrebbe essere stato recuperato ;)

Offline Gc24

  • Direttore di Dipartimento
  • ***
  • Post: 1637
  • FeedBack: +112/-34
    • Mostra profilo
Re: Homework 5
« Risposta #113 il: Lun 31 Gennaio, 12:05:42 - 2011 »
ragazzi per curiosità adesso che è terminato l'hw, come avete fatto a rendere lineare il metodo commonKeys?
io ho fatto inserire tutti gli elementi del primo (costo n) in un array e del secondo (costo m) in un altro array usando la visita in ordine (che ci da i nodi in senso crescente)
ora avendo due array ordinati in senso crescente gli elementi comuni li ho presi con un for a due indici, e come condizione di uscita dal for l'arrivo di UNO dei due indici al termine (caso peggiore n+m iterazioni) con particolari condizioni su quale indice incrementare di volta in volta (essendo gli elementi già ordinati, se uno è maggiore dell'altro incrementi j, se viceversa incrementi i se sono uguali faccio add e incremento entrambi...)

« Ultima modifica: Lun 31 Gennaio, 12:07:20 - 2011 da Gc24 »
((to.be())||(!to.be()))

Offline dimension7

  • Ricercatore
  • ****
  • Post: 443
  • FeedBack: +23/-8
    • Mostra profilo
Re: Homework 5
« Risposta #114 il: Lun 31 Gennaio, 12:24:47 - 2011 »
Io ho fatto una cosa simile, messo ogni albero in un vettore con visita in order, fatto un contatore per ogni vettore, inizializzato a zero. Poi con un ciclo while (dal quale uscivo quando almeno uno dei due contatori raggiungeva la lunghezza dell'array relativo) confrontavo i due array agli indici a cui ero arrivato col contatore, quello che conteneva il numero minore lo incrementavo, finchè non trovavo un numero uguale (e allora aggiungevo) o un numero più alto, quindi incrementavo l'altro contatore e così via. Se erano uguali, aumentavo il primo contatore, non so se è la stessa cosa che incrementarli entrambi, o se è un errore. Il metodo funzionava comunque :asd:
In realtà una volta intuito che con gli array si riusciva a fare la visita in maniera "veloce", il metodo veniva abbastanza da sè... ho faticato molto di più su removeHigh e infatti anche nel test m'ha dato problemi.

Offline Gc24

  • Direttore di Dipartimento
  • ***
  • Post: 1637
  • FeedBack: +112/-34
    • Mostra profilo
Re: Homework 5
« Risposta #115 il: Lun 31 Gennaio, 12:27:50 - 2011 »
Io ho fatto una cosa simile, messo ogni albero in un vettore con visita in order, fatto un contatore per ogni vettore, inizializzato a zero. Poi con un ciclo while (dal quale uscivo quando almeno uno dei due contatori raggiungeva la lunghezza dell'array relativo) confrontavo i due array agli indici a cui ero arrivato col contatore, quello che conteneva il numero minore lo incrementavo, finchè non trovavo un numero uguale (e allora aggiungevo) o un numero più alto, quindi incrementavo l'altro contatore e così via. Se erano uguali, aumentavo il primo contatore, non so se è la stessa cosa che incrementarli entrambi, o se è un errore. Il metodo funzionava comunque :asd:
In realtà una volta intuito che con gli array si riusciva a fare la visita in maniera "veloce", il metodo veniva abbastanza da sè... ho faticato molto di più su removeHigh e infatti anche nel test m'ha dato problemi.

ah la stessa idea...allora mi sa che era l'unico modo...
no io mi sono scervellato più su questo che sul removeHigh, l'ho trovato un aiuto piuttosto che fare un remove normale (anche se nei test ho beccato un errore nel removehigh ma solo perchè ho dimenticato un caso particolare)...vabbè ogni persona è diversa :D
((to.be())||(!to.be()))

Offline Stefano Millozzi

  • Prof
  • Studente di Dottorato
  • ******
  • Post: 242
  • FeedBack: +29/-51
    • Mostra profilo
Re: Homework 5
« Risposta #116 il: Lun 31 Gennaio, 13:02:19 - 2011 »
Io ho fatto una cosa simile, messo ogni albero in un vettore con visita in order, fatto un contatore per ogni vettore, inizializzato a zero. Poi con un ciclo while (dal quale uscivo quando almeno uno dei due contatori raggiungeva la lunghezza dell'array relativo) confrontavo i due array agli indici a cui ero arrivato col contatore, quello che conteneva il numero minore lo incrementavo, finchè non trovavo un numero uguale (e allora aggiungevo) o un numero più alto, quindi incrementavo l'altro contatore e così via. Se erano uguali, aumentavo il primo contatore, non so se è la stessa cosa che incrementarli entrambi, o se è un errore. Il metodo funzionava comunque :asd:
In realtà una volta intuito che con gli array si riusciva a fare la visita in maniera "veloce", il metodo veniva abbastanza da sè... ho faticato molto di più su removeHigh e infatti anche nel test m'ha dato problemi.

Molto bravo! l'idea era appunto sfruttare il fatto che la visita in ordine fornisce le chiavi in maniera ordinata e poi confrontare due liste ordinate per vedere cercando le chiavi comuni!