Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разные вопросы > Собрать фразу из отдельных букв


Автор: ProgramerForever 31.8.2009, 09:05
День добрый. Мне моя бывшая подкинула задачку, не могу решить. Суть: есть набор букв, необходимо составить из них фразу. Сразу что первое приходит на ум - брутфорс: перебрать возможные комбинации из этих букв и проверить является ли фразой полученная строка. Либо же второй вариант: составить из букв возможные слова, и потои комбинировать их.
Всё упирается в то, что вручную делать это оч. сложно, а как прикрутить к программке какой- нибудь словарь тоже непонятно.. Помогите, плиз.

Автор: bars80080 31.8.2009, 09:57
жесть какая-то в формулировке

если вопрос: как прикрутить словарь? то наверно стоит обнародовать в чём вы собираетесь писать, где хранить словарь и в каком виде

Автор: Ипатьев 31.8.2009, 10:04
А можно определение "фразы" в контексте вопроса?
А то не очень понятно, как автор собрался "определять".

Автор: ProgramerForever 31.8.2009, 10:05
Сорри. Писать собираюсь на VB.
А насчёт 
Цитата(bars80080 @  31.8.2009,  13:57 Найти цитируемый пост)
где хранить словарь и в каком виде

я даже и не знаю.

Добавлено через 6 минут и 48 секунд
Цитата(Ипатьев @  31.8.2009,  14:04 Найти цитируемый пост)
А можно определение "фразы" в контексте вопроса?А то не очень понятно, как автор собрался "определять".

Есть набор букв и 4 пробела. Нужно переставить буквы местами, чтобы получилось осмысленное предложение.

Автор: Ипатьев 31.8.2009, 10:16
А кто будет определять осмысленность предложения?
"большая дом стоит в комнату" - это осмысленное предложение?

Автор: ProgramerForever 31.8.2009, 10:37
Тогда нужно составлять слова из букв. А потом вручную составить предложение из слов.

Автор: Ипатьев 31.8.2009, 10:54
Осталось два вопроса.
1. Риторический: зачем во всей этой задаче буквы.
2. Практический: составить пару стандартных схем предложений, и укладывать слова в них.
Но вообще интересно, где берут подруг с задачами лексического анализа и искусственного интеллекта.

Автор: ProgramerForever 31.8.2009, 12:33
Цитата(Ипатьев @  31.8.2009,  14:54 Найти цитируемый пост)
зачем во всей этой задаче буквы.

из набора букв, собственно, и надо составить предложение.


Собственно, вот эти буквы.
Код

АБДЕЕЕЕЕЙКЛМНННПРРСТТЯЯЯ____!

"_"="пробел"
Выходит 5 слов (т.к. 4 пробела).
В Инете есть программа Cross+A, которая составляет слова из букв. Но она платная. Никаких бесплатных аналогов не нашёл, SN тоже. ;(

Автор: Ипатьев 31.8.2009, 12:51
Вопрос, как я понимаю, не в том, чтобы составить слово, а чтобы по словарю проверять, является ли очередная комбинация букв - словом?

Вообще, образец на редкость мутного вопроса. Неизвестного куда больше, чем озвучено. Что есть "слово"? Что есть "фраза"?
В текущей формулировке задача звучит, как изобретение искусственного интеллекта. Причем весьма эрудированного.

Автор: ProgramerForever 31.8.2009, 13:05
Уточняю: из заданного набора букв составить все возможные слова. Это как анаграмма.
из этих букв: АБДЕЕЕЕЕЙКЛМНННПРРСТТЯЯЯ можно составить например:
я
тебя
тебе
сад
бред
брейся

Мне бы полный список слов..

Автор: vinter 31.8.2009, 15:25
нечего "бывшим" писать курсовые нахаляву smile 

Автор: ProgramerForever 31.8.2009, 19:32
Составил список слов через программу. Прикрепил. Может поможет. Теперь надо как-то фразу составить.. Завтра программку напишу, которая будет фразы возможные составлять, но, я думаю, это оч. ресурсоёмко. Т.к. слов в словаре около 1800, а в фразе - 5 (т.к. 4 пробела), значит вариантов фразы 1800 в степени 5. А потом подсчитывать количество букв, и если они не совпадают, то фразу в топку. Как-то так..

Добавлено @ 19:33

Автор: _Y_ 1.9.2009, 16:53
Вообще-то это тема для "алгоритмов".

У меня идея надежная, но очень медленная:
1. Собирается некое подобие фразы.
2. Кидается в виде обрамленного кавычками запроса в Google.
3. Ответ парсится на предмет числа найденных ссылок.
4. Если число найденный ссылок больше установленного лимита (например 10), то фраза признается правильной.

Скорость работы будет определяться качеством предварительной сборки, т.е. отсевом заведомо неправомерных буквосочетаний.

Автор: ProgramerForever 8.9.2009, 18:25
Выложу то, что получилось. Так, посмеяться.  smile Но фразу я так и не нашёл.. 
Код

ПРЕТЕНДЕНТКА ЛЯ БРЕЙСЯ Я МНЕ 
ЯСТРЕБ НЕЙ НЯНЕ ПЛАМЯ ДЕКРЕТ 
ЯСТРЕБ КРАЙ НЯНЕ ТЕМП НЕДЕЛЯ 
ЯСТРЕБ ЛЕЙ НЯНЕ ЯНКА ПРЕДМЕТ 
ЯСТРЕБ НЯНЯ ЛАКЕЙ ПРЕДМЕТ НЕ 
ЯСТРЕБ НЕЙ НЕДЕЛЯ ТРЯПКА МНЕ 
ЯСТРЕБ ЛЕЙ ДЕКАН ПЯТЕРНЯ МНЕ 
БРЕЙСЯ МЕТР НЯНЯ ДЕКАН ЛЕПЕТ 
БРЕЙСЯ МЕТР НЯНЕ ДЕКАН ПЕТЛЯ 
БРЕЙСЯ МЯТА НЯНЕ ПЛЕН ДЕКРЕТ 
БРЕЙСЯ ЛЕНА НЯНЯ ТЕМП ДЕКРЕТ 
БРЕЙСЯ ЕЛЕ НЯНЯ ТАНК ПРЕДМЕТ 
БРЕЙСЯ ПЛЕН ТАНЯ ДЕКРЕТ МЕНЯ 
БРЕЙСЯ КЛАД НЯНЕ ТРЕПЕТ МЕНЯ 
БРЕЙСЯ НЯНЯ ЛЕПТА ДЕКРЕТ МНЕ 
БРЕЙСЯ ЛЯ ПРЕТЕНДЕНТКА Я МНЕ 
ТЕМБР ПЕЙ НЯНЯ ДЕКРЕТ ЛЕСНАЯ 
ТЕМБР НЯНЯ РЕЙС ПАКЕТ НЕДЕЛЯ 
ТЕМБР НЯНЕ РЕЙС ПЯТКА НЕДЕЛЯ 
ТЕМБР НАДЯ НЯНЯ РЕПЕЙ СКЕЛЕТ 
ТЕМБР НЕЙ НЯНЯ ДЕКРЕТ СЛЕПАЯ 
ДАЙ ПЛЕН СЕКРЕТ РЕБЯТНЯ МЕНЯ 
Я ПЕСНЯ БРЕМЕН ДЕКАРТ ЛЕНТЯЙ 
Я ПЕСНЯ БАРМЕН ДЕКРЕТ ЛЕНТЯЙ 
Я МЕДЯК БАРТЕР ЛЕНТЯЙ ПЕНСНЕ 
Я БРЕМЯ ДЕКАРТ ЛЕНТЯЙ ПЕНСНЕ 
Я ДНЕПР БЕРЕМЯ ЛЕНТЯЙ СТЕНКА 
Я НЕПЕР БЕРДСК ЛЕНТЯЙ ТЕМНАЯ 
Я НЯНЯ БАЙКЕР НЕСТЛЕ ПРЕДМЕТ 
Я БЕРН ЛЕНТЯЙ СЕЯНКА ПРЕДМЕТ 
Я ЛАКЕЙ СТЕНД БРЕМЕН ПЯТЕРНЯ 
Я ЛЕЙКА СТЕНД БРЕМЕН ПЯТЕРНЯ 
Я КЛЕЙ БРЕМЕН ДАНТЕС ПЯТЕРНЯ 
Я КЛЕЙ БРЕМЕН ДЕСАНТ ПЯТЕРНЯ 
Я ЛАЙМ ДЕКРЕТ ПЕНСНЕ РЕБЯТНЯ 
Я НЕПАЛ СТЕНД РЕМЕЙК РЕБЯТНЯ 
Я ПЕНАЛ СТЕНД РЕМЕЙК РЕБЯТНЯ 
Я ПЛЕНА СТЕНД РЕМЕЙК РЕБЯТНЯ 
Я ПЛЕН ДАНТЕС РЕМЕЙК РЕБЯТНЯ 
Я ПЛЕН ДЕСАНТ РЕМЕЙК РЕБЯТНЯ 
Я ДНЕПР ЛЕЙТЕ СМЕНКА РЕБЯТНЯ 
Я МЕНТ ДНЕПР АЛЕКСЕЙ РЕБЯТНЯ 
Я НАДЯ БРЕМЕН ЛЕНТЯЙ РЕСПЕКТ 
Я ТЛЕН ДНЕПР РЕБЯТНЯ СЕМЕЙКА 
Я РЕЙН БЕДНЯК ТЕМНАЯ СТЕПЛЕР 
Я ДЕКАН ЛЕЙТЕ БРЕМЕН СТРЯПНЯ 
Я МЕТАН ПЕСНЯ БЕДНЯК ТРЕЙЛЕР 
Я МЯТА БЕДНЯК ПЕНСНЕ ТРЕЙЛЕР 
Я ПЕНС БЕДНЯК ТЕМНАЯ ТРЕЙЛЕР 
Я БЕРН ПЕСНЯ ЛЕНТЯЙ ДЕКАМЕТР 
Я БРЕЙ НЯНЕ СПЛЕТНЯ ДЕКАМЕТР 
Я НЯНЯ АДЕПТ БРЕМЕН КЛЕЙСТЕР 
Я НЯНЕ БРЕМЯ ПЕДАНТ КЛЕЙСТЕР 
Я НЯНЕ ПЕНЯ МЕДБРАТ КЛЕЙСТЕР 
Я БАНЯ НЯНЕ ПРЕДМЕТ КЛЕЙСТЕР 
Я БАЯН НЯНЕ ПРЕДМЕТ КЛЕЙСТЕР 
Я БРЕМЯ НЕПЕР СТЕНД ЛЕНТЯЙКА 
Я СТЕН ДНЕПР БЕРЕМЯ ЛЕНТЯЙКА 
Я АНТЕЙ ЛЕНСК ТЕМБР ПЕРЕДНЯЯ 
Я МЕН БАНТ КЛЕЙСТЕР ПЕРЕДНЯЯ 
Я БАН МЕНТ КЛЕЙСТЕР ПЕРЕДНЯЯ 
Я ДНК ЛЕНТЯЙ ЯСТРЕБ ПЕРЕМЕНА 
Я МЕН ЛЕНТЯЙ ПЕДАНТ СЕРЕБРЯК 
Я ПЕНА ТЕМБР ЛЕНТЯЙ СЕРЕДНЯК 
Я РЕЙН БАСНЯ ПЕТЛЯ ДЕКРЕМЕНТ 
Я ПЕНС РЯБА ЛЕНТЯЙ ДЕКРЕМЕНТ 
Я БАНЯ СЕРП ЛЕНТЯЙ ДЕКРЕМЕНТ 
Я БАЯН СЕРП ЛЕНТЯЙ ДЕКРЕМЕНТ 
Я БАР ПЕСНЯ ЛЕНТЯЙ ДЕКРЕМЕНТ 
Я БРА ПЕСНЯ ЛЕНТЯЙ ДЕКРЕМЕНТ 
Я РАБ ПЕСНЯ ЛЕНТЯЙ ДЕКРЕМЕНТ 
Я БЛАТ НЯНЯ ПЕРСЕЙ ДЕКРЕМЕНТ 
Я ПЕЙ НЯНЯ БЛАСТЕР ДЕКРЕМЕНТ 
Я ПЕЙ НЯНЯ БРАСЛЕТ ДЕКРЕМЕНТ 
Я ЛАЙ ПЕНС РЕБЯТНЯ ДЕКРЕМЕНТ 
Я ЯНА БРЕЙ СПЛЕТНЯ ДЕКРЕМЕНТ 
Я НЕЙ РЯБА СПЛЕТНЯ ДЕКРЕМЕНТ 
Я БАЙ НЯНЯ СТЕПЛЕР ДЕКРЕМЕНТ 
Я БЕЙ ЛЕНА СТРЯПНЯ ДЕКРЕМЕНТ 
Я КЕДР БРЕМЯ ПЕСНЯ ЛЕЙТЕНАНТ 
Я КЛЕЙ САНЯ БРЕМЯ ПРЕТЕНДЕНТ 
Я ЛЯ БАСНЯ РЕМЕЙК ПРЕТЕНДЕНТ 
Я ЯМБ РЕЙН СЕЯЛКА ПРЕТЕНДЕНТ 
Я ДЕН ТЕМП ЛЕНТЯЙ СЕРЕБРЯНКА 
Я ЯК НЯНЕ ДНЕПР БАЛЕТМЕЙСТЕР 
Я ЯК НЯНЕ ЛЕПЕТ БРАНДМЕЙСТЕР 
Я НЯНЕ СПЛЕТНЯ ДЕКАМЕТР БРЕЙ 
Я ЯНА СПЛЕТНЯ ДЕКРЕМЕНТ БРЕЙ 
Я ПЛЕН ТАНЯ ДЕКРЕМЕНТ БРЕЙСЯ 
Я МЕЛ ЯНКА ПРЕТЕНДЕНТ БРЕЙСЯ 
Я ЛЯ НЕМКА ПРЕТЕНДЕНТ БРЕЙСЯ 
Я ЛЯ МЕН ПРЕТЕНДЕНТКА БРЕЙСЯ 
Я ЛЯМКА ПРЕТЕНДЕНТ БРЕЙСЯ НЕ 
Я БЕДНЯК СТЕПАН ТРЕЙЛЕР МЕНЯ 
Я ТЕНТ ПЕРСЕЙ КАНДЕЛЯБР МЕНЯ 
Я БЕЙ СКАЛЯР ПРЕТЕНДЕНТ МЕНЯ 
Я КАЛ ПРЕТЕНДЕНТ БРЕЙСЯ МЕНЯ 
Я ЛАК ПРЕТЕНДЕНТ БРЕЙСЯ МЕНЯ 
Я БАНТ КЛЕЙСТЕР ПЕРЕДНЯЯ МНЕ 
Я ЛЕНТЯЙ ПЕДАНТ СЕРЕБРЯК МНЕ 
Я ЛЯ ПРЕТЕНДЕНТКА БРЕЙСЯ МНЕ 


Добавлено через 4 минуты и 38 секунд
Да, вот программа с исходниками, может пригодится..

Автор: ProgramerForever 28.4.2010, 15:03
Моя подружка Ксюшка разгадала  smile 
Ответ:
Код

ДЛЯ МЕНЯ ТЕБЯ ПРЕКРАСНЕЙ НЕТ!!!

Ну, или
Код

ДЛЯ ТЕБЯ МЕНЯ ПРЕКРАСНЕЙ НЕТ!!!


Вопрос закрыт.

Автор: Андрей123 6.11.2014, 00:48
помогите кто чем сможет ))))
 мне девушка  прислала набор букв, толи через Т9 надо расшифровать, то ли просто из букв слова составить....ни как не получается (((((

лпплпчтоиализврго и еще огрвзилаиотчплпплi


Автор: CompWorm 6.11.2014, 03:51
железобетонно заявляю - не Т9.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)