0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 14
1

Найти минимальное расстояние между точками этих множеств и сами точки, расположенные на этом расстоянии

07.12.2022, 15:55. Показов 543. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
состоящие соответственно из N1 и N2 точек (точки заданы своими координатами x, y). Найти минимальное расстояние между точками этих множеств и сами точки, расположенные на этом расстоянии (вначале выводится точка из множества A, затем точка из множества B)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2022, 15:55
Ответы с готовыми решениями:

Найти минимальное расстояние между точками этих множеств и сами точки
HELP Даны множества A и B, состоящие соответственно из N1 и N2 точек (точки заданы своими...

Найти минимальное расстояние между точками этих множеств и сами точки
Даны множества A и B, состоящие соответственно из N1 и N2 точек (точки заданы своими координатами...

Найти минимальное расстояние между точками множеств и сами точки, расположенные на этом расстоянии
Даны множества A и B, состоящие соответственно из N1 и N2 точек (точки заданы своими координатами...

Найти минимальное расстояние между точками множеств и сами точки, расположенные на этом расстоянии
Даны множества A и B, состоящие соответственно из N1 и N2 точек (точки заданы своими координатами...

Найти минимальное расстояние между точками этих множеств и сами точки
Даны множества A и B, состоящие соответственно из N1 и N2 точек (точки заданы своими координатами...

3
1071 / 664 / 297
Регистрация: 05.09.2021
Сообщений: 1,132
07.12.2022, 17:17 2
GuFFo,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from random import randint
from itertools import product
 
POINTS_NUMBER_A = 3
POINTS_NUMBER_B = 3
 
 
class Point:
    def __init__(self, x: int, y: int):
        self.__x = x
        self.__y = y
 
    @property
    def x(self):
        return self.__x
 
    @property
    def y(self):
        return self.__y
 
    def __repr__(self):
        return f"(x = {self.x}, y = {self.y})"
 
 
class PointsPair:
    def __init__(self, p1: Point, p2: Point):
        self.__p1 = p1
        self.__p2 = p2
        self.__distance = self.get_distance()
 
    @property
    def distance(self):
        return self.__distance
 
    @distance.setter
    def distance(self, distance):
        self.__distance = distance
 
    def get_distance(self) -> float:
        return ((self.__p1.x - self.__p2.x) ** 2 + (self.__p1.y - self.__p2.y) ** 2) ** 0.5
 
    def __repr__(self):
        return f"{self.__p1}, {self.__p2}, {self.distance:.2f}"
 
    def __lt__(self, other):
        return self.distance < other.distance
 
 
def main():
    points_a = [Point(randint(10, 99), randint(10, 99)) for _ in range(POINTS_NUMBER_A)]
    points_b = [Point(randint(10, 99), randint(10, 99)) for _ in range(POINTS_NUMBER_B)]
    print(*points_a)
    print(*points_b)
    min_distance = min(PointsPair(p1, p2) for p1, p2 in product(points_a, points_b))
    print(min_distance)
 
 
if __name__ == '__main__':
    main()
Код
(x = 92, y = 74) (x = 14, y = 92) (x = 84, y = 73)
(x = 81, y = 85) (x = 42, y = 44) (x = 62, y = 17)
(x = 84, y = 73), (x = 81, y = 85), 12.37

Process finished with exit code 0
0
6 / 4 / 3
Регистрация: 07.12.2022
Сообщений: 12
07.12.2022, 17:45 3
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Импортируем библиотеку для работы с матрицами - NumPy
import numpy as np
 
# Объявляем функцию, которая принимает два множества точек
def get_min_distance(setA, setB):
    # Рассчитываем матрицу расстояний между всеми точками множеств
    distances = np.linalg.norm(setA[:, np.newaxis] - setB, axis=2)
    # Получаем минимальное расстояние и номера точек из множеств A и B
    min_distance = np.min(distances)
    a_idx, b_idx = np.unravel_index(distances.argmin(), distances.shape)
    # Возвращаем минимальное расстояние и точки, которые на нем находятся
    return min_distance, setA[a_idx], setB[b_idx]
 
# Объявляем множество A
N1 = 3
A = np.random.randint(low=0, high=10, size=(N1, 2))
 
# Объявляем множество B
N2 = 4
B = np.random.randint(low=0, high=10, size=(N2, 2))
 
# Метод для вывода множеств
def print_sets(setA, setB):
  # Выводим множество A
  print('Множество A:')
  for a in setA:
    print(f'{a}')
  
  # Выводим множество B
  print('Множество B:')
  for b in setB:
    print(f'{b}')
    
# Выводим множества
print_sets(A, B)
 
# Получаем минимальное расстояние и точки, которые на нем находятся
min_distance, a, b = get_min_distance(A, B)
 
# Выводим минимальное расстояние и точки
print(f'Минимальное расстояние: {min_distance:.3f}')
print(f'Точка из множества A: {a}')
print(f'Точка из множества B: {b}')
0
4980 / 2618 / 543
Регистрация: 07.11.2019
Сообщений: 4,324
07.12.2022, 21:29 4
Если уж использовать библиотеки.., то можно так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from scipy.spatial.distance import cdist
import numpy as np
N1, N2 = 3, 4
A = np.random.randint(low=0, high=10, size=(N1, 2))
B = np.random.randint(low=0, high=10, size=(N2, 2))
dst=cdist(A,B)
res=np.unravel_index(np.argmin(dst), shape=(N1,N2))
print('Множество A:')
print(f'{A}')
print('Множество B:')
print(f'{B}')
print(f'Минимальное расстояние: {np.min(dst):.3f}')
print(f'Точка из множества A: {res[0]}')
print(f'Точка из множества B: {res[1]}')
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2022, 21:29
Помогаю со студенческими работами здесь

Найти минимальное расстояние между точками множеств и сами точки
С++ Даны множества A и B, состоящие соответственно из N1 и N2 точек (точки заданы своими...

Найти минимальное расстояние между точками множеств
Почему не правильно считает расстояние? Даны множества A и B, состоящие соответственно из N1 и N2...

Найти минимальное расстояние между точками двух множеств
Даны множества А и В, состоящие соответственно из N1 и N2 точек(точки заданы своими координатами...

Доказать, что расстояние между замкнутым и компактным множествами равно расстоянию между двумя точками этих множеств
Даны два множества A и B в R^n, одно из которых компактно, а другое замкнуто. Доказать, что в этих...

Найти расстояние от начала координат до каждой точки и расстояние между точками
задача на С++ На плоскости заданы точки своими координатами. Найти расстояние от начала координат...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru