0 / 0 / 0
Регистрация: 18.10.2014
Сообщений: 5

На плоскости задано N произвольно расположенных окружностей. Найти пару наименее удаленных из них

08.11.2014, 07:17. Показов 4000. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На плоскости задано N произвольно расположенных окружностей различного радиуса. Найти пару наименее удаленных из них. Вычисление расстояния между окружностями оформить в виде функции.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.11.2014, 07:17
Ответы с готовыми решениями:

Найти пару наименее удаленных окружностей
На плоскости задано произвольно расположенных окружно- стей. Найти пару наименее удаленных из них.

Множество точек задано на плоскости; найти две наиболее удаленных друг от друга точки
Помогите, пожалуйста, написать программу на С++, используя структуру point для хранения координат точки: следует найти две наиболее...

Определить пару наиболее удаленных друг от друга окружностей
помогите решить задачу. На плоскости задано n произвольно расположенных окружностей. Определить пару наиболее удаленных друг от друга...

29
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
08.11.2014, 12:05
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Dani Посмотреть сообщение
Я не художник, но все же
Я это всё понял и без картинки. Просто мы тут спорим о том, что есть "расстояние" м/у окружностями. То, что ты нарисовал, ближе к математической интерпретации расстояния. Т.к. оно не может быть <0 по определению. А то что написал я, позволяет выявить различия м/у касанием вложенных и не вложенных окружностей. В твоем случае это будет строго равно 0. А в моем, для вложенных <0, а для не вложенных = 0.
Поэтому, пока ТС не придет в тред и не скажет, что ему однозначно надо, интерпретаций может быть несколько.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.11.2014, 12:34
Это расстояние отрицательное и отсекается окружностями на той же прямой.
Это уже какое-то другое расстояние. Не то, которое соответствует здравому смыслу.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
08.11.2014, 12:51
Цитата Сообщение от nmcf Посмотреть сообщение
Это уже какое-то другое расстояние. Не то, которое соответствует здравому смыслу.
Да ладно! Так-то отрицательные числа уже давно в обиход ввели. Окружности сближаются - расстояние уменьшается, коснулись - расстояние стало нулевое, двигаем дальше - начинают пересекаться, расстояние от нуля уменьшается в минус. Все логично.
0
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
08.11.2014, 13:43
Цитата Сообщение от Mr.X Посмотреть сообщение
А для пересекающихся вы эту точку где-то сбоку нашли, что ни формуле, ни чертежам не соответствует. Это расстояние отрицательное и отсекается окружностями на той же прямой
Окружность - множество точек, которые удовлетворяют уравнению: (x-a)^2 + (y-b)^2 = R^2
Как может получиться отрицательное расстояние я не понимаю, ведь как находится расстояние между окружностями (в лоб, по логике): берем по точке на каждой окружности, находим между ними расстояние (по формуле (x1-x2)^2 + (y1-y2)^2 = d^2), выбираем наименьшее. Откуда здесь берется отрицательное число? А те точки я и взял потому, что при пересечении у двух окружностей 2 пары точек совпадают. Вот между ними и будет расстояние 0, а расстояние, меньшее нуля не получится по формуле, написанной выше.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
08.11.2014, 14:08
Цитата Сообщение от Dani Посмотреть сообщение
Как может получиться отрицательное расстояние я не понимаю
Да очень просто. Положительное расстояние - это то, на которое нужно сблизить до касания, а отрицательное - на которое нужно отдалить до касания.
0
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
08.11.2014, 14:12
Цитата Сообщение от Mr.X Посмотреть сообщение
Положительное расстояние - это то, на которое нужно сблизить до касания, а отрицательное - на которое нужно отдалить до касания.
Но ведь расстояние между окружностями - расстояние между какими-то точками, а оно по определению неотрицательное.

А похоже то "расстояние", которое бывает отрицательным, это что-то другое, что неверно именуется расстоянием.

Это скорее "расстояние до точки касания".
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
08.11.2014, 14:19
Цитата Сообщение от Dani Посмотреть сообщение
а оно по определению неотрицательное.
Ну, все как раз от определения и зависит. Мое кажется мне более логичным. Если, скажем, вы на грузовике въехали в дом, то, чтобы достичь нулевого расстояния (когда вы упираетесь бампером в стену, или в то место где она была), вам нужно будет несколько сдать назад, т.е. расстояние увеличить с отрицательного до нуля.
0
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
08.11.2014, 14:22
Вот когда я въехал в дом, расстояние будет это самое
Цитата Сообщение от Mr.X Посмотреть сообщение
несколько сдать назад
(а именно: сколько мне надо сдать неважно куда), а вот куда отъехать - направленное расстояние (вектор), вот он уже будет со знаком. И последнее определение относительно, ведь можно и дом подвинуть (т.е. направленность вектора может быть разной)
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
08.11.2014, 14:36
Цитата Сообщение от Dani Посмотреть сообщение
Вот когда я въехал в дом, расстояние будет это самое
Не, ну можно принять за расстояние модуль расстояния, но мое определение удобнее тем, что оно однозначно упорядочивает все пары окружностей по расстоянию, а модуль вносит путаницу.
Цитата Сообщение от Dani Посмотреть сообщение
И последнее определение относительно, ведь можно и дом подвинуть
Ну тут вы уже выдумывать начинаете. На самом деле все однозначно - объекты сближаются - расстяние уменьшается и наоборот.
0
0 / 0 / 0
Регистрация: 12.01.2020
Сообщений: 3
04.06.2020, 15:16
Прошу помогите сделать динамическую программу так чтобы можно было вводить координаты в принтф сканф
C++
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
#include <stdio.h> 
 #include<conio.h> 
 #include<iostream> 
typedef struct { 
    int x, y, r; 
} circle_t; 
  
int calc_dist(const circle_t* a, const circle_t* b){ 
    return ((a->x-b->x) * (a->x-b->x)  +  
            (a->y-b->y) * (a->y-b->y)) - 
            (a->r+b->r) * (a->r+b->r); 
} 
  
 
 void min_dist(const circle_t* arr, size_t num, const circle_t** ca, const circle_t** cb){ 
    int   n, d; 
    const circle_t* i, *j, *e = arr + num; 
     
    if(num < 2) 
        return; 
  
    *ca = arr; 
    *cb = arr + 1; 
    d   = calc_dist(*ca, *cb); 
    for(i = arr; i != e; ++i){ 
        for(j = i + 1; j != e; ++j){ 
            if((n = calc_dist(i, j)) < d){ 
                d   = n; 
                *ca = i; 
                *cb = j; 
            } 
        } 
    } 
} 
  
  
int main(void){ 
    const circle_t *a, *b; 
    circle_t arr[] = { 
        {100,100,20}, 
        {150,160,32}, 
        {140,110,15}, 
        {110,190,10}, 
        {120,180, 5}, 
        {115,125,10} 
    }; 
    min_dist(arr, sizeof(arr)/sizeof(arr[0]), &a, &b); 
  
    printf("x: %d, y: %d, r: %d\n", a->x, a->y, a->r); 
    printf("x: %d, y: %d, r: %d\n", b->x, b->y, b->r); 
    return 0; 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.06.2020, 15:16

По координатам центров окружностей и их радиусам найти пару пересекающихся окружностей.
Окружности Входной файл input.txt, Выводной файл output.txt. Ограничение по времени, сек 2 Ограничение по памяти,...

Найти номера наиболее и наименее удаленных друг от друга точек
Добрый день. Задача: Сгенерировать массив с четным количеством 2N случайных целых элементов. В нем будут координаты N точек плоскости....

Найти номера наиболее и наименее удаленных друг от друга точек
В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1,...

Найти номера наиболее и наименее удаленных друг от друга точек в массиве +4 задачи.
Любая на выбор, помогите пожалуйста решить!!!! 12. Задан массив действительных чисел. Определить, сколько раз меняется знак в данной...

Задан массив точек. Найти номера наиболее и наименее удаленных друг от друга точек.
Условие задачи: В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в...


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

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

Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru