Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2013, 02:30   #1
countteran
Пользователь
 
Регистрация: 03.05.2011
Сообщений: 33
По умолчанию Алгоритм нахождения всех цепочек на поле.

Всем здравствуйте! Подскажите пожалуйста новичку, как можно решить данную задачу:
Дано "поле" 4*4 в качестве клеточки используется 1 edit, в каждой клетке, кроме одной, записан 1 символ (латиница + цифры). В 1 же клетке стоит знак '+'. Цепочка начинается с символа, расположенного по одну из 4-х сторон знака '+' и идет в виде змейки по всем клеткам, пустых быть не должно. Задача - найти все возможные варианты прохождения змейки. Приложил рисунки для лучшего понимания условия.
Сам имею предположение, но по нему программа найдет максимум 4-5 решений, а мне необходимы все. Заранее спасибо.
Изображения
Тип файла: png Безымянный.png (10.4 Кб, 151 просмотров)
countteran вне форума Ответить с цитированием
Старый 10.01.2013, 06:42   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Гуглим Волновой поиск пути.
Как раз для Вашего случая - рассчитываются все пути
Но я бы просто рекурсивнй обход написал - 4 варианта начальной клетки , 11 вариантов конечной, длина пути всегда 15. Пускаем поочередный обход из начальной клетки в каждую сторону, на каждой "развилке" углубляемся в рекурсию, в конце проверяем конечная ли клетка и равен ли путь 15 - значит нашли. И так пока всё дерево рекурсии не пройдём.
phomm вне форума Ответить с цитированием
Старый 12.01.2013, 14:09   #3
tima76m
Новичок
Джуниор
 
Регистрация: 12.01.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Гуглим Волновой поиск пути.
Как раз для Вашего случая - рассчитываются все пути
Но я бы просто рекурсивнй обход написал - 4 варианта начальной клетки , 11 вариантов конечной, длина пути всегда 15. Пускаем поочередный обход из начальной клетки в каждую сторону, на каждой "развилке" углубляемся в рекурсию, в конце проверяем конечная ли клетка и равен ли путь 15 - значит нашли. И так пока всё дерево рекурсии не пройдём.
а можно готовую программу?
tima76m вне форума Ответить с цитированием
Старый 12.01.2013, 14:23   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от tima76m Посмотреть сообщение
а можно готовую программу?
Нет, нельзя. Если будешь пользоваться, только тем, что тебе дадут, перестанишь думать. Престанешь думать, превратишься в дол....ба, превратишься в него, перестнешь быть (называться программистом), продолжать?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 12.01.2013, 15:01   #5
tima76m
Новичок
Джуниор
 
Регистрация: 12.01.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Нет, нельзя. Если будешь пользоваться, только тем, что тебе дадут, перестанишь думать. Престанешь думать, превратишься в дол....ба, превратишься в него, перестнешь быть (называться программистом), продолжать?
Ну продолжи, во-первых я не програмист, во-вторых был бы програмистом, написал бы программу сам! Эта программа нужна срочно в ближайщие пару дней, так что времени на изучение программирования нет!
Знаю как сделать примитивные программы в паскале вот и все, а программа, повторюсь, нужна сейчас)
Если можете помочь - помогите пожалуйста.
tima76m вне форума Ответить с цитированием
Старый 12.01.2013, 15:23   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Хорошё, давай разберём цикличность. Начало обхода из точки n+1, m+3. дальше переход по границам, улавливаешь к чему я клоню? Проверка на граничные условия. Давай сам, иначе - разозлюсь и напишу за тебя, но ты, ничерта не поймёшь
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 12.01.2013, 17:55   #7
tima76m
Новичок
Джуниор
 
Регистрация: 12.01.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Хорошё, давай разберём цикличность. Начало обхода из точки n+1, m+3. дальше переход по границам, улавливаешь к чему я клоню? Проверка на граничные условия. Давай сам, иначе - разозлюсь и напишу за тебя, но ты, ничерта не поймёшь
Злись, еще злись! Мне сказал препод что это очень трудно для меня и расскажет на следующей неделе, а мне надо сейчас. Напиши, пожалуйста
tima76m вне форума Ответить с цитированием
Старый 12.01.2013, 18:25   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Я ещё не достаточно зол . По первому условию, три цикла.
По-второму - 5, угадай как.
По третьему - 4-е. Ни в жизнь не додумаешься.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 12.01.2013 в 18:31.
Smitt&Wesson вне форума Ответить с цитированием
Старый 12.01.2013, 18:33   #9
tima76m
Новичок
Джуниор
 
Регистрация: 12.01.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Я ещё не достаточно зол . По первому условию, три цикла.
По-второму - 5, угадай как.
По третьему - 4-е. Ни в жизнь не додумаешься.
Слушай, дай мне свой емаил или где можно связаться я тебе пришлю кое что
tima76m вне форума Ответить с цитированием
Старый 12.01.2013, 18:46   #10
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от tima76m Посмотреть сообщение
Слушай, дай мне свой емаил или где можно связаться я тебе пришлю кое что
В подписи, не видно?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождения всех трехзначных чисел kate63 Помощь студентам 5 24.09.2012 16:45
Как из простого мемо записать в поле БД Access в поле тоже типа мемо с сохранением всех абзацев пробелов Speeker БД в Delphi 2 28.11.2011 16:22
алгоритм нахождения fist001 C++ Builder 2 28.05.2011 21:30
Составить программу нахождения всех делителей натурального числа N livestrong Помощь студентам 1 24.12.2008 20:35
Составить программу нахождения всех делителей натурального числа N livestrong Помощь студентам 3 24.12.2008 19:02