1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| *оля* |
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: 1 |
если даны два списка чисел и нужно найти наибольшую одинаковую последовательность чисел, например, если дано:
1 2 3 4 5 6 1 2 6 2 3 4 то должен вывести 234 подскажите пожалуйста, каким алгоритмом тут лучше воспользоваться? |
![]() ![]() |
| *оля* |
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: 1 |
Спасибочки большое!!!)))
ну да, это уже все сложно, но ради интереса попробую разобраться))) |
| Lapp |
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
это уже все сложно, но ради интереса попробую разобраться))) Ты обязательно попробуй, но сначала я бы советовал разобраться с тем, что ты сама сделала )). Можно дать несколько советов? Посмотри - это твой код, немного улучшенный: const Далее, в порядке "прихода в голову", а не в порядке важности: 1. Всегда старайся избегать явного указания чисел в программе, заводи константы (у меня - n). 2. Почему у тебя по i цикл while, а по j - for? 3. ВСЕ переменные перед использованием должны быть инициированы (у тебя не инициированы k и kmax). 4. Твои if и while внутри цикла выполняют выполняют одну и ту же функцию - объедини их )). 5. Избегай лишних переменных. 6. Не нужно дважды объявлять один тип там, где это _не_нужно_. Формально твои а и а1 принадлежат к разным типам. Тут это не важно, но в принципе может вызвать проблемы. 7. форматирование кода - не для красоты, оно имеет четкие правила, которых необходимо придерживаться - иначе утонешь в коде большем, чем одна страница.. Возьми за пример мой код, попробуй вывести правила из его формата. А вообще - +1 за то, что сама решаешь )). -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
| *оля* |
Сообщение
#4
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: 1 |
Можно дать несколько советов? Буду только благодарна!)) Посмотри - это твой код, немного улучшенный: while a[i+k]=b[j+k] do Inc(k);. не утверждаю, но возможно, тут не хватает еще одного условия? За алгоритм спасибо, он гораздо лучше моего) И за все советы спасибо, постараюсь исправиться. Правда я писала эту программу, чтобы просто попробовать сначала решить, а как дело дошло до самой задачи, то снова появились проблемы. Тут было написано для двух массивов, а в задаче 2 динамических списка. Можно ли данный алгоритм преобразовать к этой задаче или проще 2 списка изначально заменить двумя динамическими массивами? А вообще - +1 за то, что сама решаешь )). спасибо) Сообщение отредактировано: *оля* - |
*оля* алгоритмы поиска 16.05.2010 22:37
*оля* попробовала написать программу для 2х массивов, к… 17.05.2010 0:48
volvo Это задача о Наибольшей Общей Подпоследовательност… 17.05.2010 1:32
TarasBer > не подскажете где ошибка?
Ну, например, что… 17.05.2010 17:49
*оля* в другой книге написано в одной строчке по-другому… 19.05.2010 1:34
TarasBer > в другой книге написано в одной строчке по-др… 19.05.2010 13:34
*оля* все, в своем не совсем удачном алгоритме нашла еще… 19.05.2010 16:12
TarasBer > Поэтому не могу найти алгоритм, который подой… 19.05.2010 16:44
*оля*
Пока что есть O(m*n*min(m,n)), короче кубическая… 20.05.2010 1:40
TarasBer А, в википедии же есть аналогичный алгоритм, но ка… 20.05.2010 13:52
TarasBer http://e-maxx.ru/algo/suffix_automata
Тут уже за … 20.05.2010 19:02
*оля* что-то совсем у меня со списками ничего не получае… 23.05.2010 19:45
volvo Естественно. Вот при работе со списками как раз ну… 23.05.2010 20:09
*оля*
[code=pas] p := L.first;
while p <> nil … 24.05.2010 19:28
*оля* Спасибо большое!!! теперь все стало го… 23.05.2010 20:20
volvo *оля*, тут возможны 2 варианта...
Первый (я буду … 24.05.2010 20:39
*оля* volvo, вы как всегда меня спасаете, спасибо большо… 24.05.2010 23:34
volvo А что будет делать этот цикл, расскажешь? Чего ты … 24.05.2010 23:55
*оля*
А что будет делать этот цикл, расскажешь? Чего ты… 25.05.2010 0:00
volvo Ну, так и будет, если не ошибаюсь:
sum := 0;
repe… 25.05.2010 0:30
*оля*
Ну, так и будет, если не ошибаюсь:
[code=pas]sum… 25.05.2010 21:57
volvo Полный код (в виде PAS-файла) присоедини, посмотри… 25.05.2010 22:09
*оля*
Полный код (в виде PAS-файла) присоедини, посмотр… 25.05.2010 23:07
volvo *оля*, а причина - тривиальна, и Андрей уже говори… 27.05.2010 16:36
*оля*
Добавляешь инициализацию и все работает.
да, д… 28.05.2010 23:07
Lapp Спасибо большое, я эту ошибку без вашей помощи не… 29.05.2010 5:32
*оля*
А между тем, на нее было указано еще в посте №13.… 1.06.2010 12:10![]() ![]() |
|
Текстовая версия | 31.12.2025 14:31 |