Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
 Аватар для Dillan
1 / 1 / 0
Регистрация: 09.03.2011
Сообщений: 24

Определить окружность минимального радиуса, такую, чтобы она включала в себя все заданные окружности

26.05.2011, 13:44. Показов 6643. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На плоскости задано N окружностей (2<= N<=10). Надо определить окружность минимального радиуса, такую, чтобы она включала в себя все заданные окружности. Окружности задаются радиусом и координатами центра. Координаты центров окружности лежат в диапазоне -1000<=[<=1000.
Ввод из файла okrug.in.
Вывод в файл okrug.out.

Задача на языке СИ.
Помогите пожалуйста)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.05.2011, 13:44
Ответы с готовыми решениями:

Начертить окружность минимального радиуса так, чтобы три заданные точки лежали на окружности
помогите плиз решить задачу на паскале.задаются три точки.начертить окружность минимального радиуса так,чтобы эти три точки лежали на...

Среди точек найти такую, чтобы окружность с центром в этой точке включала в себя наибольшее кол-во точек
Задача вроде простая... но с реализацией возникли трудности... еще раз задачу: Задано множество точек на плоскости. Найти такую из...

Отобразить уравнение окружности минимального радиуса которое описывает все заданные точки
Помогите пожалуйста с задачей. &quot;Дано множество точек на плоскости (не менее 40).Координаты могут вводиться вручную с клавиатуры или из...

14
Кошковед
 Аватар для co6ak
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
26.05.2011, 14:37
окружность минимального радиуса, такую, чтобы она включала в себя все заданные окружности
я вот не могу понять вот этого что-то.
если она включает все заданные окружности = значит она самая большая. тогда при чем тут минимальный радиус...
0
 Аватар для Dillan
1 / 1 / 0
Регистрация: 09.03.2011
Сообщений: 24
26.05.2011, 14:48  [ТС]
я сама не поняла, поэтому и обратилась сюда.
0
 Аватар для Aneron
166 / 164 / 27
Регистрация: 20.04.2010
Сообщений: 607
26.05.2011, 15:08
Цитата Сообщение от co6ak Посмотреть сообщение
я вот не могу понять вот этого что-то.
если она включает все заданные окружности = значит она самая большая. тогда при чем тут минимальный радиус...
то есть есть несколько окружностей. и нужно посчитать радиус окружности, в которую они все поместятся. так как таких окружностей бесконечное множество. то нужно найти минимальную.
0
Кошковед
 Аватар для co6ak
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
26.05.2011, 15:46
Цитата Сообщение от Aneron Посмотреть сообщение
то есть есть несколько окружностей. и нужно посчитать радиус окружности, в которую они все поместятся. так как таких окружностей бесконечное множество. то нужно найти минимальную.
На плоскости задано N окружностей (2<= N<=10).
вот тогда вот эта строка рушит твое объяснение.
0
Бродяга
 Аватар для dihlofos
315 / 269 / 56
Регистрация: 27.08.2010
Сообщений: 553
26.05.2011, 16:04
Цитата Сообщение от co6ak Посмотреть сообщение
если она включает все заданные окружности = значит она самая большая
Видимо искомая окружность не входит в данное множество, иначе задача была бы бессмысленной.
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
26.05.2011, 17:45
Цитата Сообщение от co6ak Посмотреть сообщение
вот тогда вот эта строка рушит твое объяснение.
ничего не рушит. Нужно построить _новую_ окружность, чтобы она включала в себя все заданные. Таких окружностей - бесконечное множество, но нам нужна именно окружность минимального радиуса.
0
 Аватар для Dillan
1 / 1 / 0
Регистрация: 09.03.2011
Сообщений: 24
02.06.2011, 19:31  [ТС]
Цитата Сообщение от Nameless One Посмотреть сообщение
ничего не рушит. Нужно построить _новую_ окружность, чтобы она включала в себя все заданные. Таких окружностей - бесконечное множество, но нам нужна именно окружность минимального радиуса.
Помогите с задачей пожалуйста.
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
03.06.2011, 02:28
Это где ж такие задачи задают? Тут даже с 3 окружностями уже можно мозг сломать. А то — десять!
В общем, если алгоритм известен, то программу написать не сложно. Но вот алгоритм придумать... Может какие ещё подробности есть?
0
 Аватар для Aneron
166 / 164 / 27
Регистрация: 20.04.2010
Сообщений: 607
03.06.2011, 08:50
в чем сложность алгоритма? по идее нужно найти самые крайние точки фигуры образованной этими окружностями. и найти радиус окружности, в которую сие вмещается.
0
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
03.06.2011, 09:10
Это непростая задача. Вот тут описана похожая, только вместо окружностей N точек:
http://en.wikipedia.org/wiki/S... le_problem
1
 Аватар для Dillan
1 / 1 / 0
Регистрация: 09.03.2011
Сообщений: 24
06.06.2011, 17:31  [ТС]
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
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define n 2
float ran(float x,float y,float x1,float y1)
{
return(sqrt(pow(x1-x,2)+pow(y1-y,2)));
}
main()
{
float a[n][3],b[3]={0.0};
int i,j;
FILE *f;
f=fopen("circle.txt","r");
for(i=0;i<n;i++)
fscanf(f,"%f %f %f\n",&a[i][0],&a[i][1],&a[i][2]);
for(i=0;i<n;i++)
for(j=i;j<n;j++)
if((ran(a[i][0],a[i][1],a[j][0],a[j][1])+a[i][2]+a[j][2])>b[2])
{
b[0]=(a[j][0]+a[i][0])/2;
b[1]=(a[j][1]+a[i][1])/2;
b[2]=(ran(a[i][0],a[i][1],a[j][0],a[j][1])+a[i][2]+a[j][2])/2;
}
for(i=0;i<n;i++)
if(a[i][2]>b[2])
{
b[0]=a[i][0];
b[1]=a[i][1];
b[2]=a[i][2];
}
printf("\n\n %2.2f %2.2f %2.2f ",b[0],b[1],b[2]);
getch();
}
черновой вариант, может кто-то поможет добить???
0
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
07.06.2011, 00:41
Dillan, ты читал статью по сслылке что я тебе дал? Пробовал разобраться?
Там написано про задачу с точками. Твоя задача (с окружностями) еще сложнее. По сути задача с точками это частный случай задачи с окружностями.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.06.2011, 06:46
Цитата Сообщение от co6ak Посмотреть сообщение
я вот не могу понять вот этого что-то.
если она включает все заданные окружности = значит она самая большая. тогда при чем тут минимальный радиус...
При том, что окружности орбит и Марса, и Юпитера тоже заведомо включают всебя все окружности, какие он сможет начертить. Так вот, среди окружностей, облдающих заднным свойством (охватывающих все данные окружности) нужна наименьшая. Наименьшее общее кратное тоже больше всех исходных чисел, но ищут всегда наименьее, а не наибольшее.

Добавлено через 1 минуту
Цитата Сообщение от co6ak Посмотреть сообщение
вот тогда вот эта строка рушит твое объяснение.
С какого перепугу? Дано 10 окуржностей, нужна 11-я окружность, их все охватывающая. С какого перепугу число вариантов 11-й окружности станет конечным?

Добавлено через 1 минуту
Цитата Сообщение от grizlik78 Посмотреть сообщение
Тут даже с 3 окружностями уже можно мозг сломать. А то — десять!
А какая разница, если всё равно циклом?

Добавлено через 5 минут
Цитата Сообщение от Aneron Посмотреть сообщение
в чем сложность алгоритма? по идее нужно найти самые крайние точки фигуры образованной этими окружностями. и найти радиус окружности, в которую сие вмещается.
Надо убрать окуржности, уже находящиеся целиком внутри других окружностей, попарно соединить все оставшиеся окружности общими касательными, потом убрать пересекающиеся касательные, окружности поделить на дуги, из дуг и оставшихся касательных составить замкнутые контура, из них выбрать самый длинный, на нём найти пару наиболее взаимоудалёённых точек. Центром будет середина отрезка, их соединяющего, а диаметром его длина.
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
09.06.2011, 16:16
Цитата Сообщение от taras atavin Посмотреть сообщение
из дуг и оставшихся касательных составить замкнутые контура, из них выбрать самый длинный, на нём найти пару наиболее взаимоудалённых точек
Вот и непонятно пока, как в этих контурах найти пару взаимоудалённых точек. Разве что какой-то итерационный алгоритм придумать.

Добавлено через 3 минуты
Впрочем, кажется меня осенило. Сейчас проверю и через некоторое время выложу алгоритм с решением.

Добавлено через 10 минут
Не, не пойдёт. И, кстати, даже пара наиболее удалённых точек в этом контуре не гарантирует, что окружность, построенная по ним охватит все окружности. Я подобный алгоритм реализовал первым делом. Правда не составляя никаких контуров, а просто попарно перебирая все окружности. Касательные здесь ни к чему, так как контур получается выпуклым.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2011, 16:16
Помогаю со студенческими работами здесь

Переделать программу так, чтобы она включала в себя функции
Добрый день, нужно переделать программу так, чтобы она включала в себя функции, тк сталкиваюсь с этим впервые, получилось не очень хорошо. ...

Нарисовать и определить длину радиуса окружности, чтобы треугольник был вписан в окружность
Даны треугольник и окружность , координаты центра окружности и углов треугольника,задаются пользователем. Нарисовать и определить, какой...

Определить радиус и центр окружности минимального радиуса
Здравствуйте люди, помогите пожалуста сделатьэту программу. Определить радиус и центр окружности минимального радиуса, проходящей хотя...

Ввести координаты точки, определить, лежит ли она на окружности радиуса R
На плоскости расположена окружность радиуса R с цен¬тром в начале координат. Ввести заданные координаты точки, определить, лежит ли она на...

Ввести координаты точки, определить, лежит ли она на окружности радиуса R
На плоскости расположена окружность радиуса R с цен¬тром в начале координат. Ввести заданные координаты точки, определить, лежит ли она...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru