![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Bard |
![]() ![]()
Сообщение
#1
|
![]() Учиться, учиться еще раз учиться ![]() ![]() ![]() Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: ![]() ![]() ![]() |
Помогите решить такую задачку...
![]() Задано количество вершин(3<N<=50) выпуклого многоугольника. А еще заданы координаты этих вершин. Разрезать многоугольник на две части так чтобы площади обеих частей были равными. Найти минимальную длину такого разреза. Цитата Например: N=4 0 0 (координат 1-й точки) 0 3 (координат 2-й точки) 4 3 (координат 3-й точки) 4 0 (координат 4-й точки) минимальная длина разреза 3... Спасибо всем заранее... ![]() -------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
![]() ![]() |
fox |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите решить такую задачку... ![]() Задано количество вершин(3<N<=50) выпуклого многоугольника. А еще заданы координаты этих вершин. Разрезать многоугольник на две части так чтобы площади обеих частей были равными. Найти минимальную длину такого разреза. Спасибо всем заранее... ![]() решить можно через массиввы по моему ![]() |
klem4 |
![]()
Сообщение
#3
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата решить можно через массиввы по моему smile.gif Сильно ты ему помог, сам-то как думаешь ? Еще одно подобное сообщение и пеняй на себя. Нечего сказать по делу ? Промолчи. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Bard |
![]()
Сообщение
#4
|
![]() Учиться, учиться еще раз учиться ![]() ![]() ![]() Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: ![]() ![]() ![]() |
Цитата решить можно через массиввы по моему ![]() да спасибо за помощь но через массивы можно решить любую задачу... ![]() -------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
Bard |
![]()
Сообщение
#5
|
![]() Учиться, учиться еще раз учиться ![]() ![]() ![]() Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: ![]() ![]() ![]() |
помогите мне пожалуйста с реализацией алгоритма...
-------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
мисс_граффити |
![]()
Сообщение
#6
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
вот формула для вычисления площади:
http://algolist.manual.ru/maths/geom/polygon/area.php сам алгоритм... ничего умнее полного перебора не придумывается ![]() брать 3, 4, 5...25 точек, пока не найдем многоугольник, площадь которого равна 1/2 данного -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Bard |
![]()
Сообщение
#7
|
![]() Учиться, учиться еще раз учиться ![]() ![]() ![]() Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: ![]() ![]() ![]() |
На самом деле я думаю что мне надо просто найти те точки через которые будет проходить этот отрезок
![]() А как это перебором? Все точки находящиеся на сторонах многоуголбника что-ли? ![]() ![]() -------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
Michael_Rybak |
![]()
Сообщение
#8
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
Оффтоп: А зачем тебе эта задача, если не секрет?
Онтоп: перебор подходит или не подходит в зависимости от требуемой точности ответа. |
мисс_граффити |
![]()
Сообщение
#9
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Я почему-то прочитала, что разрезать по вершинам.
С произвольными точками перебор точного ответа не даст... ![]() -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Lapp |
![]()
Сообщение
#10
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Оффтоп: А зачем тебе эта задача, если не секрет? Да, Bard, мне тоже интересно - вам такие задают?перебор подходит или не подходит в зависимости от требуемой точности ответа. Осмелюсь поперечить.. А кто сказал, что перебор по вершинам? Перебор с делением четырехугольника на части - рулит! ![]() Я почему-то прочитала, что разрезать по вершинам. Не играет роли. Просто добавь к этому перебору деление центрального четырехугольника и скажи, что это и имела в виду ![]() А как это перебором? Все точки находящиеся на сторонах многоуголбника что-ли? Нет, сторону дели из соображений нужной пропорции и минимальности длины отрезка для выбранной пары сторон.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Michael_Rybak |
![]()
Сообщение
#11
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
>А кто сказал, что перебор по вершинам?
>Нет, сторону дели из соображений нужной пропорции и минимальности длины отрезка для выбранной пары сторон. Вот это последнее можно сделать аналитически, а можно перебором - одну из сторон поделить на маленькие отрезочки ![]() |
Lapp |
![]()
Сообщение
#12
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Вот это последнее можно сделать аналитически, а можно перебором - одну из сторон поделить на маленькие отрезочки ![]() Метод последовательных приближений - не есть перебор! ![]() ![]() Сорри за оффтоп.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Bard |
![]()
Сообщение
#13
|
![]() Учиться, учиться еще раз учиться ![]() ![]() ![]() Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: ![]() ![]() ![]() |
Извините что вмешиваюсь
![]() ![]() -------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
Lapp |
![]()
Сообщение
#14
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Для начала, перебор всех диагоналей. Таким образом находишь те диагонали, которые делят на "наиболее равные" части. Затем пляшешь вокруг них (уже аналитически).
Bard, еще раз спрашиваю - откуда у тебя эта задача? Ответь, пожалуйста. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Bard |
![]()
Сообщение
#15
|
![]() Учиться, учиться еще раз учиться ![]() ![]() ![]() Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: ![]() ![]() ![]() |
да но ведь мне нужны не только диагонали но и в том числе отрезки разбивающие стороны...
А что на счет source моей задачи это наш учитель ![]() ![]() -------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
Michael_Rybak |
![]()
Сообщение
#16
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
Продолжая за Lapp'a: смотри, концы искомого отрезка будут лежать на двух каких-то сторонах многоугольника. Двумя вложенными циклами перебираем эти вот две стороны, и получаем подзадачу для четырехугольника (только его уже надо не на равные площади делить; а как?). Вот в этом направлении думай.
|
Lapp |
![]()
Сообщение
#17
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
не подумайте что я постил эту задачу сюда чтобы поднять там(а именно на тумисе) количество своих решенных задач... Bard, люди думают то, что думают, и изменить это не в твоих силах. Поэтому в следующий раз говори сразу, откуда задача и зачем она тебе, во избежание недоразумений. Алгоритм примерно такой.. Фиксируешь одну сторону и проходишь циклом по всем остальным сторонам, получая всякий раз натянутые на эти две стороны 4-угольники. Вычисляешь площади двух частей исходного многоугольника, на которые разбивает его текущий 4-угольник (S1 и S2, площадь самого 4-угольника S). Перебором добиваемся, чтобы выполнялось: либо S1<S2 и S1+S>S2 , либо S1>S2 и S1<S2+S . Это гарантирует тебе, что линия деления должна проходить через текущий 4-угольник. Теперь аналитически (зная координаты вершин) решаешь задачу на минимизацию длины секущего отрезка (как функции его конца на одной стороне) при условии равенства площадей, на которые он делит 4-угольник. Находишь и запоминаешь длину этого отрезка. Затем переходишь к соседней стороне и повторяешь все.. Иначе говоря, двойной цикл по сторонам. Из всех полученных отрезков выбираешь минимальный. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Bard |
![]()
Сообщение
#18
|
![]() Учиться, учиться еще раз учиться ![]() ![]() ![]() Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: ![]() ![]() ![]() |
Большое спасибо
![]() ![]() ![]() Цитата Фиксируешь одну сторону и проходишь циклом по всем остальным сторонам, получая всякий раз натянутые на эти две стороны 4-угольники. Вычисляешь площади двух частей исходного многоугольника, на которые разбивает его текущий 4-угольник (S1 и S2, площадь самого 4-угольника S). Перебором добиваемся, чтобы выполнялось: либо S1<S2 и S1+S>S2 , либо S1>S2 и S1<S2+S . а еще что это означает ![]() Цитата Перебором добиваемся, чтобы выполнялось: каким перебором - по углам? ![]() -------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:51 |