Top.Mail.Ru
Ответы

Дэльфя, выручайте, 2 часа башку ломаю

Всем доброго времени суток))) Пишу генератор пасслиста, думал на паскале быстрей получится))) но, то ли я буксую, то ли.... Наверное все-таки один вариант))) Задача: есть последовательность неизвестной длинны из англ букв (какое-то слово), нужно сгенерить все варианты слова из строчных и заглавных. чтоб не
тормозить циклы функциями ansiuppercase\lowercase загнал строчные в переменную LPass, заглавные в UPass, ну и присвоение естессно pass:=upass, pass[x]:=upass[x]....а дальше перепробовал сотню вариантов и ни один корректно не работает... HELP!!! Можно на сях. Заранее благодарен.

Дополнен

Описочка pass[x]:=lpass[x]....

Дополнен

Всем спасибо, вышло супер))) Щас отладим, справочку накатаем и в народ)))

По дате
По рейтингу
Аватар пользователя
Мудрец
9лет

У вас есть слово длины N.
Каждая буква слова имеет 2 варианта (регистра): заглавная и прописная.
Вам надо получить все слова, которые содержат буквы в том же порядке, но различаются регистром.
Я вас правильно понял?

Если регистру буквы сопоставить бит (0 - прописная, 1 - заглавная), то очевидно, что таких слов 2^N (2 в степени N) причём каждое число 0…(2^N-1) своими битами задаст комбинацию букв в слове.
При N < 12 (обычные слова) можно не париться и перебирать слова в порядке возрастания чисел, но при больших N есть порядок перебора при котором соседние числа отличаются на 1 бит. Алгоритм тот же, что и при генерации всех подмножеств множества

Аватар пользователя
Просветленный
9лет

я недавно делал, там на 5 символов длиной получилось более 1,7 гига вариантов. Но я по простому сделал, чтобы посмотреть, если надо - дам код.

Аватар пользователя
Искусственный Интеллект
9лет

-

Аватар пользователя
Гуру
9лет

Ты представляешь что слово из 32 символов будет иметь 4294967296 комбинаций

Аватар пользователя
Мыслитель
9лет

Я конечно программировать не умею, но вот мне не понятно... Зачем приравнивать маленькие буквы к большим - это ведь всё равно что "2 = 1" ...Ящитаю - если "маленькая буква", то " большая буква"