Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2014, 15:04   #1
Palto
 
Регистрация: 24.04.2014
Сообщений: 4
Счастье Комбинации букв в слове

Господа, добрый день. Запутался с задачей.
Есть слово до 10 букв. Оно заменяется на другое такой же длины, посимвольно.Буква может заменятся, может не заменятся.Если буква в слове не одна, то может заменяться на все замены этой буквы или не изменятся.
Пример молоко -слово, пиджак - замена,
буква М -может быть либо М, либо П. Буква О - или О, или И или Ж или К.

Найти все комбинации замененных слов.
Прошу помощи!
Palto вне форума Ответить с цитированием
Старый 24.04.2014, 15:49   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Наработки, язык программирования?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 24.04.2014, 16:13   #3
Palto
 
Регистрация: 24.04.2014
Сообщений: 4
По умолчанию

Язык - Delphi.
Работа с рекурсивным алгоритмом, но он работает только до 5 символов(проблема факторизации).
Код:
 for i:=1 to Length(k) do
  begin
    s[n]:=k[i];
    if n = 1 then
    mmo1.Lines.Add(s)
    else
    BrutForce(s,n-1);
    if md5(s) = edt2.Text then ShowMessage(s);
  end;
Для букв,которые встречаются не один раз записал в строку индексы, слово как в примере - 246.
Код:
for I:=1 to Length(n) do
  begin
    j:=0;
    for k:=0 to p-1 do
    if (pos(n[i],n) <> 0) and (n[p-k] = n[i]) and (p-k>i) then
    begin
       s:=s+n[i]+inttostr(i)+inttostr(p-k);
      end;
    end;
  d:=Length(s);
  for k:=0 to d do
  begin
  for f:=1 to d do
  if (s[d-k] = s[f]) and ((d-k)>f) then
  Delete(s,d-k,1);
  end;
Palto вне форума Ответить с цитированием
Старый 24.04.2014, 16:18   #4
Palto
 
Регистрация: 24.04.2014
Сообщений: 4
По умолчанию

Как бы проще. Ведь букву не надо прогонять по всему алфавиту...
Максимум до 5 вариантов буквы на месте.
Palto вне форума Ответить с цитированием
Старый 24.04.2014, 18:24   #5
Palto
 
Регистрация: 24.04.2014
Сообщений: 4
По умолчанию

Ну же, товарищи-программисты)
Подсобите советом, если подскажите на другом языке тоже будет класс!
Palto вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
статистика букв в одном слове Тамерлан Абилов Помощь студентам 6 03.03.2013 19:01
подсчет букв С в последнем слове Obey177 Помощь студентам 7 10.09.2010 16:06
в каждом слове обратить порядок букв Maksik Паскаль, Turbo Pascal, PascalABC.NET 7 20.10.2009 20:24
Перебор заглавных букв в слове =LeonZone= Общие вопросы Delphi 8 02.11.2007 14:59