powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / помогите решить задачу
25 сообщений из 77, страница 3 из 4
помогите решить задачу
    #34212887
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Палестинец рассматривать все тройки из вершин и сторон

поправка: рассматривать все комбинации
Код: plaintext
1.
2.
3.
{f1, f2, .... fk }
 3 <=k<= 2 *n 
fi - {вершина || ребро}
считая при этом фигуру, образованную данными элеметами (хотя бы) выпуклым многоугольником.
...
Рейтинг: 0 / 0
помогите решить задачу
    #34213286
Пользователь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin Палестинец рассматривать все тройки из вершин и сторон

поправка: рассматривать все комбинации
Код: plaintext
1.
2.
3.
{f1, f2, .... fk }
 3 <=k<= 2 *n 
fi - {вершина || ребро}
считая при этом фигуру, образованную данными элеметами (хотя бы) выпуклым многоугольником.
вроде любая тройка уже задаст окружность,
другое дело - как определить, что окружность не вывалилась за многоугольник?
...
Рейтинг: 0 / 0
помогите решить задачу
    #34213322
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователь Aklin Палестинец рассматривать все тройки из вершин и сторон

поправка: рассматривать все комбинации
Код: plaintext
1.
2.
3.
{f1, f2, .... fk }
 3 <=k<= 2 *n 
fi - {вершина || ребро}
считая при этом фигуру, образованную данными элеметами (хотя бы) выпуклым многоугольником.
вроде любая тройка уже задаст окружность,
другое дело - как определить, что окружность не вывалилась за многоугольник?

не любая тройка однозначно задаст окружность. (см. пример выше, тройка без вершины не дает результат)
в принципе хватит и троек + итерационный метод.
итого - 2*N*log( точности )
...
Рейтинг: 0 / 0
помогите решить задачу
    #34213417
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin(см. пример выше, тройка без вершины не дает результат)угу вот у меня тоже ученики так: нарисуют равнобедренный треугольник, а потом говорят: «Из рисунка видно, что треугольник равнобедренный» -_-
...
Рейтинг: 0 / 0
помогите решить задачу
    #34213669
Пользователь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklinне любая тройка однозначно задаст окружность
А пример привести ("см. выше" - непонятно - куда смотреть)
...
Рейтинг: 0 / 0
помогите решить задачу
    #34214097
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin
не любая тройка однозначно задаст окружность. (см. пример выше, тройка без вершины не дает результат)
В примере вроде видно что даёт :-).
По трём сторонам однозначно строится окружность которая их касается -
если толька все три не параллельны. случай 3 парралельных нам и не нужен.

другое дело - как определить, что окружность не вывалилась за многоугольник?
см. выше в постах.
центр окружности в многоугольнике и не одна сторона не пересекает окружность..
(касаться может > 3 сторон естественно).
...
Рейтинг: 0 / 0
помогите решить задачу
    #34214386
mikhail_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с Палестинцем.

в принципе хватит и троек + итерационный метод.
итого - 2*N*log( точности )

Не согласен. Во-первых, метод просто точный, т.е. положение и радиус окружности находятся точно при переборе, о каких итерациях идёт речь? Во-вторых, уже для выпуклого многоугольника трудоёмкость при таком подходе O(N*(N^2 + O(1)*N)), т.е. O(N^3), откуда возьмётся N*log(точности??) непонятно.
...
Рейтинг: 0 / 0
помогите решить задачу
    #34214401
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikhail_nположение и радиус окружности находятся точно при перебореа как быть, когда количество решений бесконечно? например - прямоугольник
...
Рейтинг: 0 / 0
помогите решить задачу
    #34214413
mikhail_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в этом случае алгоритм найдёт конечное число решений (в случае прямоугольника два по концам), вот и всё, могу легко продемонстрировать. Вам как пользователю останется лишь выбрать то, которое Вам больше нравится.
...
Рейтинг: 0 / 0
помогите решить задачу
    #34214579
Neeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mikolasЧто-то в ICQ-у к тебе не могу достучаться, Neeka.
незнаю. попробуй еще раз 251743359
...
Рейтинг: 0 / 0
помогите решить задачу
    #34215025
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikhail_nА в этом случае алгоритм найдёт конечное число решений (в случае прямоугольника два по концам), вот и всё, могу легко продемонстрировать. Вам как пользователю останется лишь выбрать то, которое Вам больше нравится.
Я думаю должна нравиться окружность с максимальным радиусом :-)

Во-вторых, уже для выпуклого многоугольника трудоёмкость при таком подходе O(N*(N^2 + O(1)*N)), т.е. O(N^3),

N^2 + O(1)*N .. - умножить наверно надо..

Все тройки это O(N^3). проверка для каждой тройки на расположение окружности в многоугольнике - O(N). Итого : O(N^4).

Всё остальное похоже - нетривиальная оптимизация.(одну из идей оптимизации могу предложить такую, что в основном скажем уже по 2 сторонам (+ направление нормалей сторон) можно отсеять большинство неподходящих случаев (по расположению там или максимально возможному радиусу окружности для этих 2 сторон) и не подбирать к этим 2 - третий элемент)
...
Рейтинг: 0 / 0
помогите решить задачу
    #34215036
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Палестинец mikhail_nА в этом случае алгоритм найдёт конечное число решений (в случае прямоугольника два по концам), вот и всё, могу легко продемонстрировать. Вам как пользователю останется лишь выбрать то, которое Вам больше нравится.
Я думаю должна нравиться окружность с максимальным радиусом :-)

а. ну да - про прямоугольник же речь.. тогда да - выбирай себе любой :-)
...
Рейтинг: 0 / 0
помогите решить задачу
    #34215071
Neeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если решать с помощью диаграмы Вороного? может кто подскажет алгоритм?
...
Рейтинг: 0 / 0
помогите решить задачу
    #34215109
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Neekaа если решать с помощью диаграмы Вороного? может кто подскажет алгоритм?
Я могу подсказать алгоритм..
Забиваешь на этот курс. это похоже не для тебя ..
и идёшь в колледж на эконом..
через пару лет становишься уважаемым и богатым специалистом.
и нахрен не надо будет никаких диаграмм..
...
Рейтинг: 0 / 0
помогите решить задачу
    #34216817
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример где по трем не построишь.
итерации: см. пример. без итераций не добится того, что окружность попадет на вершину.

про количество решений: действительно для прямоугольника только 2. а этого и хватит.
а вот для идиото-гольника (это как N звезда с квадратами на концах) и то будет конечное количество. (вершин и ребер - то ограничено)

проверка всех троек - это N*(N-1)*(N-2)
а точность все равно будет, тогода еще *log( точность ), а также для каждой точности надо проверить остальные (N-3) вершин, итого

log(точности) - количество итераций
__
O(N*(N-1)*(N-2)*log(точности)*(N-3)) =
__
O(A 4 N*log(точности)) ~ (имхо) 32N 4


аффтопитезь
...
Рейтинг: 0 / 0
помогите решить задачу
    #34217159
mikhail_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПалестинецN^2 + O(1)*N .. - умножить наверно надо..

Не, умножать не надо. Имелось ввиду что в выпуклом многоугольнике окружность может касаться только по сторонам. Поэтому для каждой отдельно взятой стороны строим N - 1 биссектрис углов, образованных данной стороной и остальными N - 1 сторонами, если какая-либо сторона параллельна данной, то в качестве биссектрисы берем прямую параллельную
обоим и находящуюся от них на равных расстояниях. В общем случае эти N - 1 биссектрис пересекутся в (N - 1)*(N - 2)/2 точках. Для каждой из этих точек пресечения проверим что 3 перпендикуляра из данной точки пересечения двух биссектрис на три стороны, которыми образованы два рассматриваемых угла, попадают внутрь этих трёх сторон. Это O(N^2) операций. После этого отсева у нас останется O(1) точек которые удовлетворают данному условию. Эти оставшиеся точки проверяем на условие не выхода за пределы многоугольника, итого ещё O(1)*O(N) операций. В результате для N шагов имеем N*(O(N^2) + O(1)*O(N)) или O(N^3).

Neekaа если решать с помощью диаграмы Вороного? может кто подскажет алгоритм?

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

1.Для ЛЮБЫХ трёх непересекающихся отрезков на плоскости можно определить существует или нет окружность которая будет касаться всех трёх. Для этого существуют точные аналитические формулы. Далее, если такая окружность существует, то она единственна и положение её центра и её радиус можно точно определить. Для этого существуют точные аналитические формулы.

2.Для ЛЮБЫХ двух непересекающихся отрезков и точки на плоскости можно определить существует или нет окружность которая будет касаться двух отрезков и проходить через точку. Для этого существуют точные аналитические формулы. Далее, если такая окружность существует, то она единственна и положение её центра и её радиус можно точно определить. Для этого существуют точные аналитические формулы.

3.Для ЛЮБОГО отрезка и двух точек на плоскости можно определить существует или нет окружность которая будет касаться отрезка и проходить через обе точки. Для этого существуют точные аналитические формулы. Далее, если такая окружность существует, то она единственна и положение её центра и её радиус можно точно определить. Для этого существуют точные аналитические формулы.

4.Для ЛЮБЫХ трёх точек на плоскости... ну это знают все дети.

Aklinпример где по трем не построишь.

А Вы, я смотрю, продолжаете упорствовать. Тогда обратите внимание на пункт 2 выше.
...
Рейтинг: 0 / 0
помогите решить задачу
    #34219913
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikhail_n
А Вы, я смотрю, продолжаете упорствовать. Тогда обратите внимание на пункт 2 выше.


2.Для ЛЮБЫХ двух непересекающихся отрезков и точки на плоскости можно определить существует или нет окружность которая будет касаться двух отрезков и проходить через точку. Для этого существуют точные аналитические формулы. Далее, если такая окружность существует, то она единственна и положение её центра и её радиус можно точно определить. Для этого существуют точные аналитические формулы.


обоснуйте
...
Рейтинг: 0 / 0
помогите решить задачу
    #34219926
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вот это пожалуйста то же. (пример)

окружность - три степени свободы. в 2д пространстве.

точка - 2, точка - 2, прямая - 1 -> 5 похоже две точно можно
точка - 2, прямая - 1, прямая - 1 -> 4 две точно можно
прямая - 1, прямая - 1, прямая - 1 -> 3 !!!

это могу прокоментирвать:точка - 2, точка - 2, точка - 2 = 6
так: степеней свободы надо бы кратно трем чтобы было.


аффтопитезь
...
Рейтинг: 0 / 0
помогите решить задачу
    #34219932
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, точка, точка, точка - 3 !!!

аффтопитезь
...
Рейтинг: 0 / 0
помогите решить задачу
    #34220055
mikhail_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что ж, Вы правы, для случая одной точки и двух отрезков и двух точек и отрезка замените:

Далее, если такая окружность существует, то она единственна и положение её центра и её радиус можно точно определить...

на

Далее, если такая окружность существует, то их может быть не более 2х и положение их центров и радиусы можно точно определить...

С точки зрения алгоритма это мало что меняет, на одну проверку для каждого шага больше, только и всего.
...
Рейтинг: 0 / 0
помогите решить задачу
    #34223745
Дементьев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шеймас, Препарата с.362 или ч-з Диаграмму Воронного
Помогите теперь и Вы мне. В заданный звездный N-угольник вписать прямоугольник максимальной площади.
Что-то эта задача не сводится к ЗЛП.
...
Рейтинг: 0 / 0
помогите решить задачу
    #34223747
Дементьев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 moderator: Прошу прощения, переместите часть последнего сообщения в новую тему или удалите.
...
Рейтинг: 0 / 0
помогите решить задачу
    #34226450
Neeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
где ее взять? книгу эту?? у тебя есть?? принеси на пары...
...
Рейтинг: 0 / 0
помогите решить задачу
    #34962547
Антонина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите составить уравнение! В двузначном числе цифра единиц втрое меньше цифры десятков. Если это число разделить на три и к результату прибавить 8, то получится двузначное число, записанное теми же цифрами, взятыми в обратном порядке. Найдите заданное двузначное число.
...
Рейтинг: 0 / 0
помогите решить задачу
    #34962913
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(3*x*10 +x)/3+8 = (x*10+3*x)
...
Рейтинг: 0 / 0
25 сообщений из 77, страница 3 из 4
Форумы / Программирование [игнор отключен] [закрыт для гостей] / помогите решить задачу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]