Форум программистов, компьютерный форум CyberForum.ru

"Словесная игра" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удаление файлов из каталогов http://www.cyberforum.ru/cpp-beginners/thread116206.html
Помогите написать программу, которая позволяет удалять из каталога =(( Вот надо сначало создать директорию, а потом удалить какойнибудь файл :( HANDLE CreateFile ( LPCTSTR FileName, // имя файла DWORD Access, // тип доступа к файла DWORD Sharing, // тип разделения файла LPSECURITY_ATTRIBUTES Attrib, // указатель на описатель защиты DWORD CreationDistr,
C++ Умножение двух матриц 1000х1000 Ребят помогите пожалуйста. Надо умножить две матрицы 1000*1000. Обьявил их как int а мне пишет что они слишком большие. http://www.cyberforum.ru/cpp-beginners/thread116199.html
C++ Качественные детали
Добрый день. Помогите мне кто-нибуть с этим заданием: В отдел технического контроля поступило M однотипных деталей цилиндрической формы, диаметры которых D1, D2 ,..., Dm. Деталь, соответствующую норме, должна иметь диаметр C = 3. Из всех деталей необходимо отобрать качественные. Решение вывести в две строки. В первой напечатать текст "Диаметры качественных деталей:", во второй - напечатать...
как написать прогу котороя находит площадь поверхности цилиндра C++
Подскажите как написать прогу котороя находит площадь поверхности цилиндра по радиусу и высоте
C++ Подскажите как решить на С++ http://www.cyberforum.ru/cpp-beginners/thread116137.html
1 Даны натуральное число n, целые числа A0, ..., An-1. Получить сумму положительных и число отрицательных чётных элементов последовательности A0, ..., An-1 2 Дан массив действительных чисел A. Получить новый массив D={A1*A16, A2*A17, A3*A18, ..., A15*A30} 3 Заданы двумерный массив 5х5 и число К. Разделить элементы К-й строки на диагональный элемент, расположенный в данной строке. 4 Дан...
C++ C++ и STL (раскритикуйте мою первую прогу) Много всего делал на си а вот на С++ кроме калькулятора в Builder ничего. Вот написал такую прогу, которая анализирут текстовый файл и выдает информацию какое слово сколько раз встречается в тесте. Принцип следующий - обявляется Dictionary в котором "массив", "индексы" которого это слова, а значения - это как часто они встречаются в тексте. В конце этот "массив" печатается. Алгоритм вычитан в... подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
19.04.2010, 11:59     "Словесная игра"
Я бы дела так. Ищем все комбинации введённых букв (не обязательно всего набора) (можно буквы пронумеровать индексами от 1 до 3 (4, 5, 6, 7, в зависимости от ввода) и искать комбинации цифр 123, либо 1234, 12345, 123456, 1234567, а потом для каждого найденного набора вместо цифры подставлять нужную букву), далее для каждого найденного набора букв искать все слова в словаре, совпадающие с найденным наборами. Заносить эти слова в, например, массив строк. Далее мы просто считаем вЕсы всех найденных слов или их пар (пару составляем так: берём первое слово, далее подставляем к нему второе, третье, ... , n-е, затем берём второе слово, к нему подставляем третье, ..., n-е и т.д, но это и так понятно))) ), находим максимальный, а затем снова просматриваем массив строк, составляя слова (или пары) с найденным весом. Выводим переменную max (максимальный вес) и отредактированный массив строк, содержащий только слова (или пары) с таким весом.
Скорее всего рекурсия будет в функции, ищущей наборы букв.

Добавлено через 50 минут
Так, вся фишка сейчас в том, чтобы написать функцию, ищущую все эти возможные перестановки... Думаю, нужно написать сначала код, ищущий перестановку N чисел, и затем для каждой найденной перестановки рекурсивно применять его для N-1 чисел...

Добавлено через 32 минуты
Так, чтобы перебрать все возможные варианты для N цифр, мы просто берём последнюю цифру числа и "тянем" её через всё число, пока она не займёт первую позицию. Затем в получившемся числе берём последнюю цифру и опять "тянем" её вдоль числа до первой позиции и т.д. Продолжаем, пока последнее число не совпадёт с исходным. Пример для числа 123 (для нашей задачи: например, пользователь ввёл "адф". Нумеруем а = 1, д = 2, ф = 3, ищем комбинацию для 123, подставляем вместо цифр соответствующие буквы и ищем получившееся слово в словаре)
Пример: пользователь ввёл отк. Нумеруем: о = 1, т = 2, к = 3. Ищем комбинации
123 132 312
321 231
213 123 (совпало с начальным -> отбрасываем последний результат).
Получили ряд
123 132 312 321 231 213 он соответствует словам
отк окт кот кто тко ток
Скорее всего найденные в словаре слова будут: кот, кто, ток

Осталось подумать, пренебречь ли ресурсами и тупо ко всем найденным перестановкам рекурсивно применять алогритм для меньшего числа цифр (тогда будут повторяться некоторые наборы, соответственно будет происходить повторная процедура поиска), или же пренебречь памятью и хранить все найденные перестановки в массиве строк, исключая повторения, а уже после нахождения ВСЕХ возможных перестановок включать процедуру поиска...

Добавлено через 18 секунд
И я склоняюсь ко второму варианту.
 
Текущее время: 06:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru