| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > алгоритм перебора символов нерекурсивный |
| Автор: vnm 5.1.2006, 18:14 |
| Кто нибудь подскажите нерекурсивный алгоритм перебора всех вариантов пароля длиной 5 символов из (к примеру) 6 символов( 1 2 9 a J ]). [email protected] рекурсивный алгоритм: program combinations; {$APPTYPE CONSOLE} Const Simbols : String = 'ab12'; Procedure Generate(S : String; Lev : Integer); Var I : Integer; Begin If (Lev = 0) Then Begin Writeln(S); {next password} Exit; End; For I:=1 To Length(Simbols) Do Generate(S + Simbols[I], Lev - 1); End; Begin Generate('', 3); {3 simbols for password} Readln; End. |
| Автор: SoWa 5.1.2006, 20:28 |
| Пятью вложенными циклами! |
| Автор: nworm 5.1.2006, 20:37 |
| Можно написать процедуру генерирующую следующий за текущим пароль и гонять эту процедуру в цикле от 1 до <колличество символов в пароле>^<длина пароля>. |
| Автор: BSOD 5.1.2006, 20:47 |
| как вариант - генерить все размещения... (сначала генериш все множества из букв (каждую букву пишешь по пять раз), потом из этих множеств перестановки... но ИМХО - рекурсивный как-то рульнее.... |
| Автор: S.A.P. 5.1.2006, 20:49 | ||
то же самое, только в цикле и c "искуственным" стеком. |
| Автор: vnm 6.1.2006, 02:09 | ||||
Мне нужен алгоритм для произвольного кол-ва символов в пароле. Вот моя программа на дельфи:
Мне срочно нужен нерекурсивный алгоритм. Кто может то помоги[email protected] |
| Автор: nworm 6.1.2006, 02:58 |
| Я же говорю можно писать процедуру, генерирующую следующий за текушим пароль. Если пароли из цифр 0-9, то за 01112339 будет 01112340 аналогичную процедуру можно написать для произвольных символов. |
| Автор: Akina 6.1.2006, 12:19 |
| Для произвольного количества символов либо рекурсия, либо динамическое программирование - а значит тоже рекурсия. Исключение - цепной инкремент. См. пост nworm. |
| Автор: nworm 6.1.2006, 21:19 | ||
Примерно так.
Проверять код было лень |