Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 9

Среди всех точек множества, лежащих в первой или третьей четверти, найти точку, наиболее близкую к началу координат

07.12.2022, 17:53. Показов 852. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано множество A из N точек (точки заданы своими координатами
x, y). Среди всех точек этого множества, лежащих в первой или третьей
четверти, найти точку, наиболее близкую к началу координат. Если таких
точек нет, то вывести точку с нулевыми координатами

Нужна помощь срочная, уже 3 часа не могу понять как решить
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2022, 17:53
Ответы с готовыми решениями:

Среди всех точек этого множества, лежащих в первой или третьей четверти, найти точку, наиболее близкую к началу координат.
1. Дано множество A из N точек (точки заданы своими координатами x, y). Среди всех точек этого множества, лежащих в первой или третьей...

Среди точек множества, лежащих в первой или третьей четверти, найти точку, наиболее близкую к началу координат
Дано множество A из N точек (точки заданы своими координатами x, y). Среди всех точек этого множества, лежащих в первой или третьей ...

Среди всех точек, лежащих в первой или третьей четверти, найти точку, наиболее близкую к началу координат...
Дано множество A из N точек (точки заданы своими координатами х, у). Среди всех точек этого множества, лежащих в первой или третьей...

9
6 / 4 / 3
Регистрация: 07.12.2022
Сообщений: 12
07.12.2022, 17:58
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
# Импортируем модуль, которая позволит работать с представлением координат в двумерном пространстве
import numpy as np 
 
# Функция для поиска точки ближайщей к началу координат
def closest_point(points):
    # Если множество пустое, возвращаем точку с нулевыми координатами
    if len(points) == 0:
        return [0, 0]
 
    # Инициализируем ближайщую точку
    closest_point = points[0]
    # Инициализируем расстояние до ближайщей точки (максимальное в промежутке [0, inf])    
    closest_distance = np.inf 
    # Проходим циклом по всем точкам множества
    for i in range(len(points)):
        # Извлекаем текущую точку
        p = points[i]
        # Получаем текущее расстояние
        d = np.linalg.norm(p)
        # Если текущее расстояние меньше имеющегося минимума
        if d < closest_distance:
            # Устанавливаем новый минимум
            closest_distance = d
            # Обновляем ближайщую точку
            closest_point = p
 
    return closest_point
    
# Тестовое множество
points = [[1,1], [2,3], [4,4], [4,6], [-3,-3], [-4,-4],[-4,-6]]
 
# Фильтруем множество по условию нахождения в первой или третьей четверти
first_third_quadrant_points = [point for point in points if point[0] > 0 and point[1] > 0 ]
 
# Находим ближайщую точку
closest_point = closest_point(first_third_quadrant_points)
 
# Выводим результат
print('Closest Point = ', closest_point)
Code
1
2
Вывод:
Closest Point =  [1, 1]
0
0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 9
07.12.2022, 18:47  [ТС]
А можно попроще если не сложно, а то я ещё numpy не знаю
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
07.12.2022, 19:16
Лучший ответ Сообщение было отмечено Солбом как решение

Решение

Солбом, А кто мешает изучить? Впрочем, вот:
Python
1
2
3
4
5
6
7
8
9
10
def dist2(p):
     return p[0] * p[0] + p[1] * p[1]
points = [[-1,1], [2,3], [-4,4], [4,-6], [-3,-3], [-4,-4],[-4,-6]]
points = list(filter(lambda t: t[0]*t[1]>0, points))
if points:
     for i in range(len(points)):
          points[i].append(dist2(points[i]))
     print(sorted(points, key=lambda x: x[2])[0][0:2])
else:
     print([0, 0])
1
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
07.12.2022, 19:40
Еще вариант:
Python
1
2
3
4
5
6
points = [[-1,1], [2,3], [-4,-4], [4,-6], [-3,-3], [-4,4],[4,-6]]
points13=filter(lambda i: not((i[0]>0)^(i[1]>0)), points)
try: 
    print(min(points13, key=lambda x: x[0]**2+x[1]**2))
except ValueError:
    print([0,0])
1
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
07.12.2022, 20:33
u235, тогда уж
Python
1
filter(lambda i: (i[0]>0)^(i[1]<0), points)
1
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
07.12.2022, 20:35
Parramon, нет, так отфильтруются точки 2 и 4 четверти.
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
07.12.2022, 20:38
Цитата Сообщение от u235 Посмотреть сообщение
Parramon, нет, так отфильтруются точки 2 и 4 четверти.
С чего-бы? Там знаки разные (< и >)
1
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
07.12.2022, 21:08
Parramon, прошу прощения, не заметил сразу.
0
0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 9
08.12.2022, 01:04  [ТС]
Спасибо, я бы с радостью кинулся изучать ее, но времени сейчас в обрез
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.12.2022, 01:04
Помогаю со студенческими работами здесь

Найти точку среди всех точек этого множества, лежащих в первой четверти, наиболее близкую к началу координат
помогите решить задачу если можно то скоментариями зарание спасибо. Дано множество A из N точек на плоскости. Найти точку (вывести её...

Найти точку среди точек данного множества, лежащих в первой четверти, наиболее близкую к началу координат
Дано множество A из N точек на плоскости. Найти точку (вывести её номер и значение) среди всех точек этого множества, лежащих в первой...

Найти точку среди точек данного множества, лежащих в первой четверти, наиболее близкую к началу координат
Дано множество A из N точек на плоскости. Найти точку (вывести её номер и значение) среди всех точек этого множества, лежащих в первой...

Среди точек массива, лежащих в некоторой четверти, найти точку, наиболее близкую/удаленную от начала координат
Дан массив из N точек. Среди всех точек этого массива, лежащих в первой1|второй2|третьей3|четвертой4 четверти, найти точку, наиболее...

Среди всех точек данного множества, лежащих во второй четверти, найти точку, наиболее удаленную от начала координат
Дано множество A из N точек (точки заданы своими координатами x, y). Среди всех точек этого множества, лежащих во второй четверти, найти ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru