Tenim un mercat ambulant i volem distribuïr el nostre producte a n
pobles utilitzant una variació de l’algorisme del veí més proper.
Per fer-ho, disposem d’una graella bidimensional de 50x50 unitats de longitud, entre les quals hi ha distribuïdes n+1
coordenades que es troben emmagatzemades en una llista de valors enters com la següent:
coord = | ⎡ ⎣ | x1,y1,x2,y2,x3,y3,x4,y4,..,..,xn,yn,x_ref,y_ref | ⎤ ⎦ |
Volem crear una llista distancies
que guardi totes les distàncies (valors reals amb 2 decimals) des de la coordenada de referència x_ref
, y_ref
(que es troben a la última i penúltima posicio de la llista respectivament) fins a la resta de coordenades dels diferents pobles, ordenades de major a menor distància.
Per obtenir la distància euclidiana entre dues coordenades
(x1,y1) i (x2,y2) |
la distància entre elles (d, valor real) es pot calcular de la següent manera:
d = | √ |
| (1) |
NOTA: Per arrodonir un número real a un número de decimals específic,
podem utilitzar la funció: round(num_real,número_de_decimals)
.
Per exemple, per fer l’arrodoniment a 2 decimals, si valor = 4.35342135
, llavors round(valor,2)
retornarà 4.35
.
La pràctica consisteix en dos exercicis (Part 1 i Part2) que son independents
PART 2
Donada una llista de distàncies de valors reals arrodinits a 2 decimals ordenada de major a menor, creada a la Part1, cal crear ara la funció dades_distancia
, que haurà de retornar el següents dos resultats en relació amb totes les distàncies entre la coordenada de referència i els n pobles:
Observació
Només cal que enviïs el fitxer solution.py
amb la funció dades_distancia
(i les funcions auxiliars que hagis fet) que et demanem i prou.
El fitxer main.py
et pot servir per a fer la teva solució,
però no cal que n’enviïs el contingut.
Entrada
llista de distàncies (valors reals amb 2 decimals) de la forma:
⎡ ⎣ | d1,d2,d3,d4,...,dn | ⎤ ⎦ |
Sortida Dos resultats en relació amb totes les distàncies entre la coordenada de referència i els n pobles:
Input
70.71 63.64 49.5 21.21 14.14
Output
3 438.4
Input
40.01 32.8 20.62 14.87
Output
2 216.6