Métriques a l’Eixample¶
Una mètrica o funció distància és una funció que defineix una distància entre cada parell d’elements d’un conjunt. Per exemple, la distància euclidiana, o mètrica euclidiana, és la distància ordinària entre dos punts que es mesuraria amb un regle.
Donats dos punts en el pla, el punt \(p\) amb coordinades cartesianes \((p_1, p_2)\), i el punt \(q\) amb coordenades \((q_1, q_2)\), definim dos mètriques per calcular \(d(p,q)\), la distància entre \(p\) i \(q\):
la mètrica del taxista o distància de Manhattan, també coneguda com distància rectilínia, que es calcula amb la fòrmula
\[d(p,q) = |p_1 − q_1| + |p_2 − q_2|\]la distància de Txebixov, també coneguda com distància de l’escaquer, ja que en els escacs, representa el nombre mínim de moviments que necessita un rei per anar d’una casella a una altra i que es calcula amb la fòrmula
\[d(p,q) = max\left\{|p_1 − q_1|, |p_2 − q_2|\right\}.\]
Dissenya la funció dist_manh que donades les coordenades p1, p2 d’un punt p, i les coordenades q1, q2 d’un punt q, retorna la distància de Manhattan entre els punts p i q (ha de ser un valor de tipus
float).Desa la funció al fitxer
metriques.py. La funció ha de passar el següent doctest:>>> dist_manh(1,2,3,4) 4.0 >>> dist_manh(1,3,2,4) 2.0 >>> dist_manh(-3,-4,-1,-2) 4.0
Nota
Pots descarregar el fitxer amb tests
metriques1.txtDissenya la funció dist_txeb que donades les coordenades p1, p2 d’un punt p, i les coordenades q1, q2 d’un punt q, retorna la distància de Txebixov entre els punts p i q (ha de ser un valor de tipus
float).Desa la funció al fitxer
metriques.py. La funció ha de passar el següent doctest:>>> dist_txeb(1,2,3,4) 2.0 >>> dist_txeb(1,3,1,4) 1.0 >>> dist_txeb(-4,-4,1,-2) 5.0
Nota
Pots descarregar el fitxer amb tests
metriques2.txtDissenya la funció cost_despl que donades les coordenades p1, p2 d’un punt p, les coordenades q1, q2 d’un punt q, una funció dist que calcula la distància entre dos punts, i el preu d’un desplaçament unitari preuUnitat, retorna un
floatamb el preu corresponent al desplaçament des del punt p fins al punt q fent servir la funció de distancia dist.Desa la funció al fitxer
metriques.py. La funció ha de passar el següent doctest:>>> cost_despl(1,2,3,4,dist_manh,1.5) 6.0 >>> cost_despl(1,2,3,4,dist_txeb,1.5) 3.0 >>> cost_despl(-3,-4,-1,-2,dist_manh,1.5) 6.0 >>> cost_despl(1,-9,9,4,dist_manh,1.5) 31.5
Nota
Pots descarregar el fitxer amb tests
metriques3.txt
Solucions
Disposeu de solucions al fitxer metriques.py.