Sab 17 Agosto, 15:38:59 - 2019

Autore Topic: Homework3  (Letto 7768 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline fc90

  • Professore Associato
  • *
  • Post: 527
  • FeedBack: +57/-14
    • Mostra profilo
Re: Homework3
« Risposta #30 il: Dom 04 Dicembre, 17:02:50 - 2011 »
ragazzi mi domandavo se l'output deve essere generato solo alla fine, oppure deve essere un'applicazione realtime, nel senso che appena ricevo una where o una closest, stampo subito il risultato oppure stampo tutto insieme alla fine?


non credo cambi molto. conta solo il risultato finale al termine dell'esecuzione dell'istanza!

Offline Zoso

  • Studente di Dottorato
  • ***
  • Post: 205
  • FeedBack: +52/-7
  • Oh captain, my captain!
    • Mostra profilo
    • LineHeight
Re: Homework3
« Risposta #31 il: Dom 04 Dicembre, 17:05:34 - 2011 »
Ho provato a fare un generatore automatico anche per questo Homework. Nell'allegato trovate 3 files:

* HW3_Test.java è il generatore. Funziona in due modalità: la prima permette di generare input con un numero di operazioni add pari al valore passato da linea di comando; la seconda confronta il contenuto di due file e permette di verificare che il risultato ottenuto dal vostro algoritmo sia uguale a quello ottenuto dal mio (il che non significa che il mio o il vostro sia giusto, ma statisticamente aiuta!).
* 4000.txt è l'input con 4000 operazioni di add totali.
* result_4000.txt è il risultato del mio algoritmo per l'input contenuto in 4000.txt.

Per verificare che il vostro algoritmo restituisca risultati identici al mio:

Codice: [Seleziona]
cat file_input.txt | java vostra_classe_Java > vostro_output.txt
javac HW3_Test.java
java HW3_Test verifica result_4000.txt vostro_output.txt

Se l'ultimo comando stampa "true", allora il contenuto dei due file è identico.

Per generare i vostri test con un numero di add personalizzato (test che poi vi consiglio di condividere con noi):

Codice: [Seleziona]
javac HW3_Test.java
java HW3_Test genera numero_operazioni_add

Dovreste trovare nella cartella di esecuzione del generatore un nuovo file chiamato numero_operazioni_add.txt che contiene l'input randomico appena generato.

Fatemi sapere se ci sono problemi, sperando che questa volta ci sia più partecipazione. :)
« Ultima modifica: Dom 04 Dicembre, 21:16:43 - 2011 da Zoso »

Offline fc90

  • Professore Associato
  • *
  • Post: 527
  • FeedBack: +57/-14
    • Mostra profilo
Re: Homework3
« Risposta #32 il: Dom 04 Dicembre, 17:10:30 - 2011 »
Ho provato a fare un generatore automatico anche per questo Homework. Nell'allegato trovate 3 files:

* HW3_Test.java è il generatore. Funziona in due modalità: la prima permette di generare input con un numero di operazioni add pari al valore passato da linea di comando; la seconda confronta il contenuto di due file e permette di verificare che il risultato ottenuto dal vostro algoritmo sia uguale a quello ottenuto dal mio (il che non significa che il mio o il vostro sia giusto, ma statisticamente aiuta!).
* 4000.txt è l'input con 4000 operazioni di add totali. Vi consiglio di copia-incollare il contenuto direttamente nel terminale al lancio della vostra classe Java.
* result_4000.txt è il risultato del mio algoritmo per l'input contenuto in 4000.txt.

Per verificare che il vostro algoritmo restituisca risultati identici al mio:

Codice: [Seleziona]
java vostra_classe_Java > vostro_output.txt
javac HW3_Test.java
java HW3_Test verifica result_4000.txt vostro_output.txt

Se l'ultimo comando stampa "true", allora il contenuto dei due file è identico.

Per generare i vostri test con un numero di add personalizzato (test che poi vi consiglio di condividere con noi):

Codice: [Seleziona]
javac HW3_Test.java
java HW3_Test genera numero_operazioni_add

Dovreste trovare nella cartella di esecuzione del generatore un nuovo file chiamato numero_operazioni_add.txt che contiene l'input randomico appena generato.

Fatemi sapere se ci sono problemi, sperando che questa volta ci sia più partecipazione. :)

ora lo provo!
ho cmq generato un file con 2000 sole add. Prendendo il tempo tramite System.out.println(System.currentTimeMillis()); all'inizio e a fine mai. E facendo la differenza tra i valori riportati il risultato è 71.
Ho implementato con un hashmap e mi sembra un risultato non affidabile, in effetti poi il submit mi da time limit! Secondo voi è un risultato plausibile?


ripetuto il testo con 4000 entry in input e una query di closest finale : 78 ms com'è possibile che continua a darmi time limit ?
« Ultima modifica: Dom 04 Dicembre, 17:16:30 - 2011 da fc90 »

Offline Zoso

  • Studente di Dottorato
  • ***
  • Post: 205
  • FeedBack: +52/-7
  • Oh captain, my captain!
    • Mostra profilo
    • LineHeight
Re: Homework3
« Risposta #33 il: Dom 04 Dicembre, 17:13:25 - 2011 »
Citazione
Ho implementato con un hashmap e mi sembra un risultato non affidabile, in effetti poi il submit mi da time limit! Secondo voi è un risultato plausibile?

Lo è se il tuo input non fa altro che inserire utenti nella mappa (ovvero solo operazioni add). Il problema sta nelle operazioni where e closest (non update e remove perché, nel tuo caso, l'HashMap le porta a termine in tempo costante).

Offline Seril

  • Direttore di Dipartimento
  • ***
  • Post: 2729
  • FeedBack: +263/-467
    • Mostra profilo
Re: Homework3
« Risposta #34 il: Dom 04 Dicembre, 17:18:23 - 2011 »
grazie mille per la risposta. ultima cosa. voi la distanza ve la siete calcolata in double?

Offline fc90

  • Professore Associato
  • *
  • Post: 527
  • FeedBack: +57/-14
    • Mostra profilo
Re: Homework3
« Risposta #35 il: Dom 04 Dicembre, 17:20:26 - 2011 »
grazie mille per la risposta. ultima cosa. voi la distanza ve la siete calcolata in double?

nono tanto tutti gli input sono interi. poi ricordati che la distanza qui viene considerata solo come la somma delle componenti x e y e non è una vera e propria dall'origine!

Offline Seril

  • Direttore di Dipartimento
  • ***
  • Post: 2729
  • FeedBack: +263/-467
    • Mostra profilo
Re: Homework3
« Risposta #36 il: Dom 04 Dicembre, 17:24:55 - 2011 »
hai ragione che pollo che sono XD. grazie mille me ne stavo dimenticando  :sisi:

Offline fc90

  • Professore Associato
  • *
  • Post: 527
  • FeedBack: +57/-14
    • Mostra profilo
Re: Homework3
« Risposta #37 il: Dom 04 Dicembre, 17:38:37 - 2011 »
Lo è se il tuo input non fa altro che inserire utenti nella mappa (ovvero solo operazioni add). Il problema sta nelle operazioni where e closest (non update e remove perché, nel tuo caso, l'HashMap le porta a termine in tempo costante).

Mhmh ho utilizzato il tuo file di input. A occhio non sembra lento nemmeno quello. Anzi sicuramente inpiega meno di due secondi. Il problema è che non da risultati coerenti con il tuo file di comparazione!

Offline finch89

  • Neo-Laureato
  • **
  • Post: 96
  • FeedBack: +16/-1
    • Mostra profilo
    • the loser.
Re: Homework3
« Risposta #38 il: Dom 04 Dicembre, 17:46:32 - 2011 »
Io ho generato qualche altro file di input con numeri a caso. Se li provate fatemi sapere!

Offline Zoso

  • Studente di Dottorato
  • ***
  • Post: 205
  • FeedBack: +52/-7
  • Oh captain, my captain!
    • Mostra profilo
    • LineHeight
Re: Homework3
« Risposta #39 il: Dom 04 Dicembre, 21:15:28 - 2011 »
Citazione
Se li provate fatemi sapere!

Ho provato i tuoi test e ottengo gli stessi risultati  :)

Citazione
Il problema è che non da risultati coerenti con il tuo file di comparazione!

Mhh... qualche giorno fa avevo avuto problemi con il remove e l'update. Che output ti dà questo?

Codice: [Seleziona]
add alice 5 6
add bob 3 4
closest
where bob
where alice
remove bob
add chris 1 2
closest
update alice 1 1
closest
remove alice
add alice 1 0
closest

Offline Seril

  • Direttore di Dipartimento
  • ***
  • Post: 2729
  • FeedBack: +263/-467
    • Mostra profilo
Re: Homework3
« Risposta #40 il: Dom 04 Dicembre, 21:20:21 - 2011 »
mi da il time limit anche a me e sicuramente per la closest ora provo con i vostri test ;)

Offline Zoso

  • Studente di Dottorato
  • ***
  • Post: 205
  • FeedBack: +52/-7
  • Oh captain, my captain!
    • Mostra profilo
    • LineHeight
Re: Homework3
« Risposta #41 il: Dom 04 Dicembre, 21:36:32 - 2011 »
Comunque il generatore non è molto intelligente, sto ancora trovando un modo per coprire i casi più delicati. ;)

Offline Seril

  • Direttore di Dipartimento
  • ***
  • Post: 2729
  • FeedBack: +263/-467
    • Mostra profilo
Re: Homework3
« Risposta #42 il: Dom 04 Dicembre, 21:46:18 - 2011 »
gli input sono come i tuoi. ora devo capire come ottimizzare il programma. non so più che inventarmi

Offline Zoso

  • Studente di Dottorato
  • ***
  • Post: 205
  • FeedBack: +52/-7
  • Oh captain, my captain!
    • Mostra profilo
    • LineHeight
Re: Homework3
« Risposta #43 il: Dom 04 Dicembre, 21:51:13 - 2011 »
Nuovo zip con una versione leggermente più "bastarda" del generatore (a volte usa una coordinata x già generata precedentemente), + 6 test con input piccoli da 5 a 35 add.

Offline finch89

  • Neo-Laureato
  • **
  • Post: 96
  • FeedBack: +16/-1
    • Mostra profilo
    • the loser.
Re: Homework3
« Risposta #44 il: Dom 04 Dicembre, 22:11:38 - 2011 »
Ho provato i test da 20 a 35 ed è ok!
Giusto per fare un'altra prova, già che ci siamo... Allego un altro input!