Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > генератор слов


Автор: MOPEDE 22.6.2007, 14:04
Можно ли С/С++ написать прогу которая из набора букв(анг) создала слова в перемешку? НУ как бы показала все варианты слов которые можна сделать из этих букв и потом записала бы их в текстовый файл.

Автор: Rodman 22.6.2007, 14:13
ну во первых тебе нужно иметь базу данных слов, и которой потом нужно сравнивать (проверять на существование)... а дальше все не совсем сложно!

Автор: FiMa1 22.6.2007, 14:15
Конечно можно. Например, заведи некий словарь в котором будут искаться те слова, в которые входит введенный набор букв. Потом перезапишешь результат во второй файл.

Автор: MOPEDE 22.6.2007, 14:18
А без словаря ни как нельзя. 

Автор: JackYF 22.6.2007, 14:21
Rodman
FiMa1, имхо задание было не то.

Как мне кажется, автору нужно создать просто все перестановки из заданного набора букв.
По сабжу тебе поможет std::next_permutation из <algorithm>

Автор: MOPEDE 22.6.2007, 14:23
Ето только в С/С++ токое можна сделать или также в Паскале?

Автор: Rodman 22.6.2007, 14:24
Цитата(JackYF @  22.6.2007,  13:21 Найти цитируемый пост)
все перестановки из заданного набора букв.

а как узнать это слова или просто набор букаф?!

Автор: bsa 22.6.2007, 14:28
Цитата(MOPEDE @ 22.6.2007,  14:23)
Ето только в С/С++ токое можна сделать или также в Паскале?

std::next_permutation из <algorithm> - есть только в C++.
Но никто тебе не запрещает написать тоже самое, хоть на ассемблере.

Автор: W4FhLF 22.6.2007, 15:06
Цитата(Rodman @  22.6.2007,  14:24 Найти цитируемый пост)
а как узнать это слова или просто набор букаф?


воспользоваться правилами словообразования? (Punto Switcher for example)
Правда промахи на словах-исключениях конечно будут или на вообще не существующих словах, но составленных в соответствии с правилами. Тут уж выбирать автору исходя из задачи, которая описана очень скудно. 

Автор: bsa 22.6.2007, 15:40
Цитата(W4FhLF @ 22.6.2007,  15:06)
Цитата(Rodman @  22.6.2007,  14:24 Найти цитируемый пост)
а как узнать это слова или просто набор букаф?


воспользоваться правилами словообразования? (Punto Switcher for example)

Punto Switcher использует словарь возможных комбинаций символов.

Автор: W4FhLF 22.6.2007, 19:22
Цитата(bsa @  22.6.2007,  15:40 Найти цитируемый пост)
Punto Switcher использует словарь возможных комбинаций символов.


Что за алгоритм? Считал, что он по правилам работает. 

Автор: vinter 22.6.2007, 19:33
Цитата(интервью с разработчиком)

Интересные случаи, которые произошли при написании и распространении программы...

Смеяться над человеческой глупостью не стоит - в письмах много забавного было. Поразило, что, в основном, просят добавить в правило "ща". В русском языке до времен Аськи и e-mail это слово употреблялось не часто. Мы долго не добавляли, так как "ща" - это "of" в английском языке. Но когда число писем с данным предложением перевалило за сотню, мы вставили это в правила. Кроме того, сначала в правилах Punto Switcher не оказалось сочетаний, входящих в матерные выражения, но народ нас быстро поправил. smile

Цитата(вики)

 бесплатная программа для автоматического переключения между русской и английской раскладками клавиатуры. Работая в фоновом режиме, Punto Switcher проводит статистический анализ последовательностей вводимых символов, и если распределение двухсимвольных пар оказывается типичным не для языка, на котором вводятся символы, Punto Switcher переключает язык ввода, стирает фразу,

так что видимо она реально по правилам работает, хм.. интересная программка, я тож думал что по словарю..

Автор: jonie 22.6.2007, 19:43
ну фактически это тоже солварь (словарь двухбуквенных пар)....  а вот если бы была задана функция математическая тогда ябы это не считал за словарь)

Автор: Любитель 24.6.2007, 11:24
Не вижу принципиальной разницы. Либо ты задаёшь функцию формулой, либо таблицей - какая разница? Для дискретных функций они совместимы. Просто формула может некрасивая быть (плюс до ужаса неэффективная), но она всегда есть. С кучей целочисленных делений, модулей и разной дряни - не особо интересно :(

Автор: bsa 24.6.2007, 14:54
Для построения кривой через N точек, формула кривой должна быть (N-1) порядка: a(N-1)*X^(N-1) + ... A1*X + A0 = 0

Автор: Любитель 24.6.2007, 15:14
bsa, ну вовсе не обязательно. Кто запрещает трансцендентные функции использовать? А если в N точка значения функции равны - кто запрещает использовать y(x) = const? smile Впрочем не в этом суть, а в том, что непонятно, почему словарь радикально должен отличаться от формул. Тем более в рассматриваемом случае смесь того и другого - очень типичный случай.

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