Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Ruslan Shevelyov                     2:5020/9481.21 03 Feb 2003  13:59:08
 To : Evgeniy Jirnov
 Subject : Сложная (для меня) задача...
 -------------------------------------------------------------------------------- 
 
                      and all other ppl/robots/animals reading this msg...
 
 31 Jan 03 15:34, Evgeniy Jirnov wrote to All:
 
  EJ> Сабж: есть словарь(текстовый файл), в котором содержатся 10 тыс
  EJ> слов(каждое слово на новой строке). Требуется решить три задачи(не
  EJ> зависимые друг от друга) с вариантами:
 
  EJ> 1. Придти к конечному слову, изменяя одну букву. Все слова должны
  EJ> содержать одно и тоже количество символов. Примерно так:
  EJ> дом->док->сок->сук(первое слово - "дом", последнее - "сук"). Первое
  EJ> слово вводится с клавиатуры. Последнее вводится с клавиатуры
 
  EJ> 2. Придти к конечному слову, так чтобы следующее слово начиналось с
  EJ> последней буквы предыдущего. Примерно так:
  EJ> комок->куст->тезка->арка(первое слово - "комок", последнее - "арка").
  EJ> Длина слов: a. Все слова должны быть с одинаковым количеством букв b.
  EJ> Количество букв может различаться Последнее слово вводится с
  EJ> клавиатуры
 
 Первые две задачи я бы решал так: рассмотрим граф, в котором
 вершинами являются слова; две вершины соединены ребром/дугой
 тогда и только тогда, когда: для первой задачи -- слова различаются
 на одну букву; для второй задачи -- последняя буква первого слова
 совпадает с первой буквой второго слова. В этом графе заданы
 две вершины, осталось найти путь (если он существует).
 
 Hекоторые соображения по оптимизации этого процесса:
 1. В задачах 1 и 2а можно сразу выкинуть из словаря все
 слова, длина которых отличается от длины конечного слова;
 2. Во второй задаче можно считать два слова одинаковыми,
 если у них совпадают первая и последняя буквы. Такие "дубликаты"
 также можно выкинуть;
 3. Сокращённый словарь можно отсортировать и использовать
 бинарный поиск;
 4. Хранить рёбра графа для второй задачи явно незачем,
 а для первой может оказаться целесообразным перед началом
 поиска пути составить для каждой вершины список смежных
 вершин (а лучше -- их индексов);
 5. Если памяти много, можно использовать поиск в ширину.
 WBR...
 
 ---
  * Origin: Cosmo Canyon Station (2:5020/9481.21)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Сложная (для меня) задача...   Evgeniy Jirnov   31 Jan 2003 16:34:42 
 Re: Сложная (для меня) задача...   Andrew Starsh   01 Feb 2003 11:26:20 
 Сложная (для меня) задача...   Dmitriy Yaroshevich   02 Feb 2003 06:03:59 
 Re: Сложная (для меня) задача...   Vitaly Lugovsky   03 Feb 2003 02:39:36 
 Re: Сложная (для меня) задача...   Andrew Starsh   04 Feb 2003 08:42:50 
 Сложная (для меня) задача...   Alexander Chelmodeev   01 Feb 2003 23:55:25 
 Сложная (для меня) задача...   Dmitriy Yaroshevich   02 Feb 2003 06:14:55 
 Re: Сложная (для меня) задача...   Vitaly Lugovsky   03 Feb 2003 02:41:40 
 Re: Сложная ( для меня) задача...   Oleg I. Khovayko   03 Feb 2003 18:16:23 
 Сложная (для меня) задача...   Ruslan Shevelyov   03 Feb 2003 13:59:08 
 Re: Сложная (для меня) задача...   Andrew Ezhguroff   04 Feb 2003 16:19:28 
 Re: Сложная (для меня) задача...   Sergey Andrianov   05 Feb 2003 09:56:26 
Архивное /ru.algorithms/45823e3e458b.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional