Proposta di analizzare HW6 del primo in classifica

R
Raffaele (3850 points)
10 24 48
asked Dec 4, 2020 in HW6 obbligatorio by Raffaele (3,850 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.

3 Answers

Best answer
1
1937764 (3520 points)
6 14 42
answered Dec 4, 2020 by 1937764 (3,520 points)
edited Dec 5, 2020 by 1937764

Onorato del post, grazie mille!

EDIT:

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

R
Raffaele (3850 points)
10 24 48
commented Dec 4, 2020 by Raffaele (3,850 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)
6 14 42
commented Dec 4, 2020 by 1937764 (3,520 points)
Nei prossimi giorni cerco di fare una descrizione fatta bene!
ManoleLorenzo (4090 points)
0 5 10
commented Dec 5, 2020 by ManoleLorenzo (4,090 points)
Sarebbe davvero utile. Grazie mille
1
1937764 (3520 points)
6 14 42
commented Dec 5, 2020 by 1937764 (3,520 points)
Versione commentata qui: https://hastebin.com/mazajonumo.py
R
Raffaele (3850 points)
10 24 48
commented Dec 5, 2020 by Raffaele (3,850 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)
4 26 63
answered Dec 4, 2020 by Oakandrew (6,400 points)
buona spiegazione, non sei 1937764? ahah
R
Raffaele (3850 points)
10 24 48
commented Dec 4, 2020 by Raffaele (3,850 points)
No, non sono io ahaha.
O
Oakandrew (6400 points)
4 26 63
commented Dec 4, 2020 by Oakandrew (6,400 points)
gia capito,aha
andrea.sterbini (172680 points)
511 927 1776
answered Dec 4, 2020 by andrea.sterbini (172,680 points)

Sarebbe stata la lezione di oggi .... crying

R
Raffaele (3850 points)
10 24 48
commented Dec 4, 2020 by Raffaele (3,850 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.