La prova pratica è strettamente individuale. Qualora venissero consegnati degli elaborati simili, più di quanto è lecito attendersi da soluzioni indipendenti allo stesso problema, gli stessi verrebbero annullati. Non saranno ammesse motivazioni del tipo "abbiamo già provato a risolvere un esercizio simile, per questo i nostri compiti sono uguali". Se davvero avete scritto del codice R che risolve un esercizio simile, e lo volete utilizzare come base di partenza per questo, siete liberissimi di farlo, purché consegniate entro 15 minuti dall'inizio dell'esame il suddetto codice al docente.
Per la consegna dell'elaborato, utilizzare il modulo web disponibile al sito di sottomissione on-line. L'invio del file deve avvenire entro le ore 13:00, secondo l'orario indicato nel sito stesso.
Il compito consiste di due esercizi. Il voto massimo che si può ottenere risolvendo correttamente il primo esercizio è 18, mentre il voto massimo per una corretta soluzione di entrambi gli esercizi è 30.
dist.man
e dist.eucl
che calcolano rispettivamente la distanza di Manhattan e la distanze Euclidea di due vettori in input. Ad esempio:
> dist.man(c(1,1),c(4,5)) [1] 7 > dist.eucl(c(1,1),c(4,5)) [1] 5
dist.sing.link
e dist.mean
che prendono in input una funzione distanza tra punti (come dist.man
e dist.eucl
) e due matrici con stesso numero di colonne. Ogni matrice viene vista come un insieme di punti: ogni riga è un punto, le colonne sono le coordinate dei punti. Ad esempio
1 1 2 4rappresenta un insieme di due punti, uno di coordinate (1,1), l'altro di coordinate (2,4). Le funzioni
dist.sing.link
e dist.mean
devono calcolare la distanza tra gli insiemi di punti rappresentati dalle due matrici, usando rispettivamente il metodo della distanza minima (single link) e di quella media (average link).
Ad esempio:
> a <- rbind(c(1,1),c(2,2)) > b <- rbind(c(1,1),c(4,5)) > dist.sing.link(dist.man,a,b) [1] 0 > dist.mean(dist.man,a,b) [1] 3.5Si consiglia di utilizzare la funzione
apply
o il comando for
.