Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Proposta di analizzare HW6 del primo in classifica

R
Raffaele (3850 points)
16 27 49
in HW6 obbligatorio by (3.9k points)
Vedendo come i miei colleghi hanno risolto l'HW6 mi sono accorto che tutti noi abbiamo usato strategie diverse.

In particolare sono stato colpito da come è stato risolto l'HW dalla matricola 1937764, infatti nel suo codice ho notato che ha fatto uso di classi, grafi, ricorsione e alberi non binari.

Se gli altri ragazzi sono d'accordo, vorrei chiedere a uno qualsiasi dei docenti di dedicare un'ora di lezione alla comprensione del codice in questione, che ritengo interessante per come è stato progettato.

Da quello che è possibile dedurre dalla descrizione del suo algoritmo, il/la collega ha creato un modo per trovare le intersezioni e stabilire l'ordinamento attraverso un unico processo ricorsivo:

Comincia individuando il rettangolo più in basso di tutti (senza rettangoli che gli "passano sopra").

Poi fa un controllo per vedere se questo ne interseca un altro, se ne interseca un altro allora questo secondo starà sopra al primo.

Quindi per ogni rettangolo intersecato, esegue questo calcolo ricorsivamente.

Alla fine ottiene un albero (non binario) dove ogni nodo è il rettangolo (individuato univocamente dal colore) e i figli sono tutti i rettangoli che interseca.

Da questo processo ottiene che l'ordine corretto dei rettangoli sarà il più lungo percorso possibile partendo dal nodo rettangolo più basso fino alla foglia più distante.

Per finire mi volevo complimentare con chi ha fatto questo codice, sia per l'efficienza che per l'idea dell'algoritmo che ho trovato molto interessante.
763 views
closed

3 Answers

Best answer
1
1937764 (3520 points)
7 14 42
by (3.5k points)
edited by

Onorato del post, grazie mille!

EDIT:

Qui è possibile trovare una versione commentata: https://hastebin.com/mazajonumo.py

R
Raffaele (3850 points)
16 27 49
by (3.9k points)
Ah beh hanno visualizzato 170 persone, ora sei un vip ahaha, comunque se hai voglia di dirci di più riguardo all'algoritmo penso che siamo tutti interessati.
1
1937764 (3520 points)
7 14 42
by (3.5k points)
Nei prossimi giorni cerco di fare una descrizione fatta bene!
ManoleLorenzo (4090 points)
1 5 10
by (4.1k points)
Sarebbe davvero utile. Grazie mille
1
1937764 (3520 points)
7 14 42
by (3.5k points)
Versione commentata qui: https://hastebin.com/mazajonumo.py
R
Raffaele (3850 points)
16 27 49
by (3.9k points)
Perfetto grazie mille. Dal momento che è stata fatta anche una versione commentata del codice a questo punto fare un ora di lezione per capire il codice sarà sicuramente più facile.
O
Oakandrew (6400 points)
7 27 64
by (6.4k points)
buona spiegazione, non sei 1937764? ahah
R
Raffaele (3850 points)
16 27 49
by (3.9k points)
No, non sono io ahaha.
O
Oakandrew (6400 points)
7 27 64
by (6.4k points)
gia capito,aha
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)

Sarebbe stata la lezione di oggi .... crying

R
Raffaele (3850 points)
16 27 49
by (3.9k points)
Infatti la ritenevo una cosa nel suo stile, cosi come aveva fatto con la programmazione funzionale dell'hw2, penso avrebbe fatto lo stesso per questo HW6.

Soprattutto gli argomenti in questo caso si rilacciavano perfettamente con quelli dell'HW8 e in generale con ciò che stiamo trattando nelle ultime lezioni.

Ad ogni modo pensi a prendersi cura di se, che molti studenti le vogliono bene.