IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Минимальное множество прямых (рекурсия с возвратом)
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Женский

Репутация: -  1  +


Всем доброго времени суток! Прошу помочь со следующей задачей: найти минимальное множество прямых, проходящих через все заданные точки. То есть заданы координаты точек и ответом должно быть число прямых. Не знаю как организовать перебор всех вариантов, очень прошу написать хотя бы в общем виде сам алгоритм.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Даша @ 17.04.2011 18:13) *
Всем доброго времени суток! Прошу помочь со следующей задачей: найти минимальное множество прямых, проходящих через все заданные точки. То есть заданы координаты точек и ответом должно быть число прямых. Не знаю как организовать перебор всех вариантов, очень прошу написать хотя бы в общем виде сам алгоритм.
И это нужно сделать с помощью рекурсии? В целом, ничего сложного, но есть непонятные моменты..

Допустим, точки заданы массивом (то есть, упорядочены). Делаешь процедуру, которая делает две вещи (либо/либо, как обычно в рекурсии):
1. Если точек 2 или больше, то берет следующую точку и проводит все прямые через нее и все остальные и добавляет их к списку, если их там еще нет; после этого "выкидывает" эту тучку из массива и вызывает себя же.
2. Если точка только одна - выходит.

Таким образом будут проведены все прямые. Смысл твоей задачи состоит в том, чтоб отсеять повторы, поэтому нужно всякий раз проверять, не включена ли прямая уже в список. А для этого нужно уметь уметь сравнивать прямые. Например, если две прямые заданы в виде y=ax+b, то они одинаковые, если a1 и b2 соответственно равны a2 и b2. Тут возникает оджин вопрос: как заданы координаты точек? Это действительные числа или целые? Действительные сравнивать несколько труднее..

Говори, что непонятно.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Даша   Минимальное множество прямых (рекурсия с возвратом)   17.04.2011 21:13
Lapp   Всем доброго времени суток! Прошу помочь со сл…   18.04.2011 1:36
Даша   Вот это как раз непонятно. Как организовать пере…   18.04.2011 2:10
Lapp   Вот это как раз непонятно. Как организовать перебо…   18.04.2011 10:08
Lapp   Даша, я так понимаю, что у тебя особого прогресса …   19.04.2011 15:41
Даша   Прощу прощения за то что долго не отвечала, не был…   20.04.2011 1:20
Lapp   Прощу прощения за то что долго не отвечала, не был…   20.04.2011 10:03
Lapp   Вот. Выстругал буратинку )). Но снова она мне не …   20.04.2011 12:40
Даша   Еще раз выражаю огромную благодарность :) По коду…   20.04.2011 20:28
-TarasBer-   А разве для быстрого переноса Паскальных программ …   20.04.2011 23:19
Lapp   По коду в принципе всё понятно,Даша, не обижайся, …   21.04.2011 5:47
-TarasBer-   > А зачем? Чтоб растянуть удовольствие? Для бы…   21.04.2011 17:35
Даша   Что же, попробую ответить на ваши вопросы: 1. Что…   21.04.2011 21:13
Lapp   Для быстрого переноса Паскальных программ, и чтобы…   22.04.2011 11:35


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.06.2024 18:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name