Coordenades (I) X64804


Statement
 

pdf   zip   main.py

thehtml

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 posició 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 = 
(x2x1)2 + (y2y1)2
(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 1

Cal crear la funció ordre_distancies, que rebrà una llista amb totes les coordenades, en la forma abans descrita, i retornarà una nova llista amb les distàncies (valors reals arrodonits a 2 decimals) ordenades de major a menor, sempre respecte a la coordenada de referència (últimes dues posicions de la llista donada).

Observació Només cal que enviïs el fitxer solution.py amb la funció ordre_distancies (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 coordenades (valors enters) com la següent:


x1,y1,x2,y2,x3,y3,x4,y4,...,...,xn,yn,x_ref,y_ref

Sortida Llista amb les n distàncies ordenades de major a menor (valors reals arrodonits a 2 decimals), obtingudes des de cada coordenada donada fins a la coordenada de referència.

Public test cases
  • Input

    15 15 35 35 10 10 45 45 50 50 0 0
    
    

    Output

    [70.71, 63.64, 49.5, 21.21, 14.14]
    
  • Input

    25 16 25 37 50 25 5 10 45 11
    
    

    Output

    [48.08, 44.72, 35.34, 18.6]
    
  • Information
    Author
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python