Как определить ближайшую точку из массива с координатами (X,Y) к главной точке (X,Y)?
Необходимо написать функцию
generate_random_coordinates(N), которая генерирует кортеж случайных координат (матрицу) длинной N. Координата X в диапазоне от -180 до +180, координата Y от -90 до +90.Написать функцию
find_nearest(coordinate, matrix), которая находит ближайшую координату из сгенерированного массива к указанной координате.
Ответ к первому:
from random import randint
c = []
def generate_random_coordinates(N):
for i in range(N):
c.append([randint(-180, +180),randint(-90, +90)])
print(c)
z = generate_random_coordinates(7)
print(z)
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
def generate_random_coordinates(N):
return [[randint(-180, +180),randint(-90, +90)] for i in range(N)]
main_point = generate_random_coordinates(1)[0]
coords = generate_random_coordinates(10)
def dist(p1, p2=main_point):
return ((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2) ** 0.5
res = min(coords, key=dist)
результат:
In [105]: coords
Out[105]:
[[-100, 25],
[-160, -20],
[-109, -12],
[158, 79],
[6, 2],
[46, -56],
[75, -81],
[-109, -71],
[-75, 40],
[-177, 57]]
In [106]: main_point
Out[106]: [25, -54]
In [107]: res
Out[107]: [46, -56]