Distàncies (II) X96957


Statement
 

pdf   zip   main.py

thehtml

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 = 
(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 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:

  1. La distancia mínima,
  2. La distancia màxima,
  3. La distancia mitjana,
  4. Les unitats de longitud totals que recorrem si tenim en compte que per cada poble que visitem, cal fer l’anada i tornada des de la coordenada de referència.

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:

  1. Distancia mínima,
  2. Distancia màxima,
  3. Distancia mitjana,
  4. Unitats de longitud totals que recorrem si tenim en compte que, per cada poble que visitem, cal fer l’anada i tornada des de la coordenada de referència.
Public test cases
  • 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
    
  • Information
    Author
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python