Tenim un mercat ambulant i volem distribuïr el nostre producte a n
pobles utilitzant una aproximació de l’algorisme del veí més proper. Per fer-ho, disposem d’una graella bidimensional de 100x100 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 = | ⎡ ⎣ | x_ref,y_ref,x1,y1,x2,y2,x3,y3,x4,y4,..,..,xn,yn | ⎤ ⎦ |
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 primera i segona posicio de la llista respectivament) fins a la resta de coordenades dels diferents pobles, ordenades de menor a major distància.
Per calcular 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 distancies de valors reals arrodinits a 2 decimals ordenada de menor a major, creada a la Part1, cal crear ara la funció dades_distancia
, que haurà de retornar el següents valors reals, arrodonits a 2 decimals, 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 Quatre valors reals, el la mateixa línia, arrodonits a 2 decimals, amb els valors:
Input
28.28 42.43 98.99 113.14 141.42
Output
[28.28, 42.43, 98.99, 113.14, 141.42] 28.28 141.42 84.85 848.52
Input
1.41 58.19 67.54 72.01
Output
[1.41, 58.19, 67.54, 72.01] 1.41 72.01 49.79 398.3