![]() |
Добро пожаловать, гость ( Вход | Регистрация )
Публикующим:
1. Задачу можно опубликовать двумя способами:
- создав для нее отдельную тему с информативным названием;
- добавив задачу в готовый сборник (например «Бескрылки», «Мини-задачи», «Вопросы ЧГК») или создав свой (например, «Загадки от /для Светы»).
2. Если вы публикуете задачу, решение которой не знаете, напишите об этом. По умолчанию считается, что вам известен правильный ответ и вы готовы проверять других игроков.
Решающим:
1. В темах запрещается писать ответы и подсказки, если возможность открытого обсуждения не оговорена отдельно (в случае открытого обсуждения для текста следует использовать цвет фона или белый, оставляя другим игрокам возможность самостоятельного решения).
2. Правильность решения можно проверить, написав личное сообщение автору.
![]() |
cradle1 |
![]()
Сообщение
#1
|
![]() Активный участник ![]() ![]() ![]() Группа: Модераторы BrainGames Сообщений: 923 Регистрация: 2.7.2008 Из: Протвино, Моск.обл. Пользователь №: 8 757 ![]() |
Есть у меня задача - я ее решаю, вполне возможно, что у кого то есть опыт, и ему не трудно поделиться.
Нужно написать прогу, которая на плоскости, с данными точками ищет прямые (отбрасывая шум) , близкие к данным точкам. Я это делаю полным перебором типа этого. class line{k,b,khi2} class palte{z,pointsN,point[pointsN]}// плоскость XZ разбивается на проекции Z, в каждой проекции добавляется массив points, с количеством точек, лежащих на прямой z class ploskost{platesN,plate[platesN],linesN,line[linesN]} ploskost.AddPoint(x,z) - добавляет точку(если надо plate) x,z findlines(minpointsonline,maxkhi2,samepointsincluster) далее заводится счетчик counter[platesN], где counter[i] лежит от 0 до plate[i].pointsN // 0 - не берем точку в прямую, j - берем j ую точку plate[i].point[j] перебираем счетчик c minpointsonline ненулевыми значениями. findline (counter,&k,&b,&khi2) - все довольно тупо. Если khi2<maxkhi2 сравниваем счетсик с уже найденными прямыми по другим счетчикам, отличие больше samepointsoncluter, заводит новую прямую line[i]. иначе сравнивает полученные khi2 и замещает наименьшим. Думаю смысл ясен. Вообще на моем детекторе сейчас 10 plates, по 16,16,16,16,32,32,32,44,44,44 возможных точек. Эскизы прикрепленных изображений ![]() |
![]() ![]() |
telepnev |
![]()
Сообщение
#2
|
![]() Раздолбай ![]() ![]() ![]() Группа: Модераторы BrainGames Сообщений: 836 Регистрация: 27.9.2008 Из: Санкт-Петербург Пользователь №: 10 095 ![]() |
Вопрос по картинке, если отбросить вашу "околофизику".
Есть градация по цветам. Множество Red, Blue и Green, это по сути входные данные. Для каждого из них необходимо выделить подмножество максимальной мощности такое, что все его элементы лежат в "эпсилон окрестности" некой прямой? -------------------- Беспокоится заранее глупо, разберёмся по ситуации
|
cradle1 |
![]()
Сообщение
#3
|
![]() Активный участник ![]() ![]() ![]() Группа: Модераторы BrainGames Сообщений: 923 Регистрация: 2.7.2008 Из: Протвино, Моск.обл. Пользователь №: 8 757 ![]() |
Вопрос по картинке, если отбросить вашу "околофизику". Есть градация по цветам. Множество Red, Blue и Green, это по сути входные данные. Для каждого из них необходимо выделить подмножество максимальной мощности такое, что все его элементы лежат в "эпсилон окрестности" некой прямой? Точно. Нужно выделить прямые на полученных данных. Есть плоскость с точками. Нужно найти прямые. Которые ближе всего на данных |
telepnev |
![]()
Сообщение
#4
|
![]() Раздолбай ![]() ![]() ![]() Группа: Модераторы BrainGames Сообщений: 836 Регистрация: 27.9.2008 Из: Санкт-Петербург Пользователь №: 10 095 ![]() |
Тогда может проще оперировать прямыми вместо точек, и искать точку внутри замкнутой области вместо прямой?
Ссылка для ознакомления. Могу скинуть какие то *.pdf, *.ppt. Может появиться разумная идея. Еще в вычислительной геометрии есть понятие "заметающей прямой". Она полезна, много чего умеет. Есть всяки разные алгоритмы для анализа множества прямых на наличие пересечений и прочего. Честно говоря, я уже почти все успел позабыть с института, могу только наводками оперировать. ![]() ![]() -------------------- Беспокоится заранее глупо, разберёмся по ситуации
|
![]() ![]() |
![]() |
Упрощённая версия | Сейчас: 18.7.2025, 21:52 |