Distàncies (I) X69258


Statement
 

pdf   zip   main.py

Distàncies (I)

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 = ∖left[x-ref,y ref,x ,y ,x ,y ,x ,y ,x ,y ,..,..,x  ,y  ∖right]
                         1  1  2  2 3  3  4  4      n  n

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,y 2)

la distància entre elles (d, valor real) es pot calcular de la següent manera: \begin {equation} \\d = \sqrt {(x_2-x_1)^2 + (y_2-y_1)^2} \end {equation} 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 menor a major, sempre respecte a la coordenada de referència (primeres 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:

∖left[x ref,y-ref,x1,y 1,x2,y2,x3,y3,x4,y 4,...,...,xn,yn∖right]

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

Author

Jose Antonio Roman

© Jutge.org, 2006–2024

Public test cases
  • Input

    0 0 100 100 80 80 20 20 70 70 30 30
    
    

    Output

    0 0 100 100 80 80 20 20 70 70 30 30 
    [28.28, 42.43, 98.99, 113.14, 141.42]
    
  • Input

    24 15 25 16 25 87 55 75 5 70
    
    

    Output

    24 15 25 16 25 87 55 75 5 70 
    [1.41, 58.19, 67.54, 72.01]
    
  • Information
    Author
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python