Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 18.10.2014
Сообщений: 5

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

08.11.2014, 07:17. Показов 3968. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru