![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
lifer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
Кто подскажет как логичней всего организовать перебор всех комбинаций букв в заданном диапазоне (3-8 символов в слове) на ПХП? (не бойтесь, ломать ничего не собираюсь).
|
|||
|
||||
arial |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 772 Регистрация: 11.3.2003 Где: Архангельская обл . Репутация: 6 Всего: 7 |
Для цифр придумал за 5 секунд:
-------------------- Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская) |
|||
|
||||
lifer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
хм, для цифр я и сам за 5 сек напишу, а вот для букв не могу ничего придумать пока-что...
Может создать массив где значениями будут символы, а потом работать с ним? |
|||
|
||||
arial |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 772 Регистрация: 11.3.2003 Где: Архангельская обл . Репутация: 6 Всего: 7 |
Ну это понятно, а потом рекурсией этот массив.
-------------------- Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская) |
|||
|
||||
lifer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
Млин, что-то башка совсем не варит сегодня.
![]() Пробовал сделать через вложенные циклы for, но это долго и глупо. А с рекурсией никак разобраться не могу. Может хоть набросок какой-нибудь кинете? Пожалуйста.
Вот мой массив. |
|||
|
||||
lifer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
У меня проблема как от одного символа в слове перейти к 2-м и.т.д. (понимаю, что торможу... но сейчас ничего больше придумать не могу)
Это сообщение отредактировал(а) lifer - 20.1.2004, 02:31 |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
У меня на часах 1:20 так что за "качество" кода не ручаюсь
![]() ![]()
Идея ясна, оптимизация за тобой. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
Вот тебе АЛГОРИТМ полного перебора чео угодно. Попробуй сам перевести его...
Здесь: S[k] - список допустимых значений на k-том шаге A[k] - последовательность букв в ответе З.Ы. Этот алгоримт - очень общий. ПЛЮС Я - паскалист, так что код близок к паскалевскому. Если надо, могу написать решение на Паскале, а ты его переведешь куда надо... -------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
Sardar Сори... когда писал, твоего ответа не было...
-------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 7 Всего: 32 |
Где-то в ветке по PHP валяется мой алгоритм перебора всех значений из массива.
-------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
lifer |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
2 sardar
Ругается насчёт ф-ции putWord($word); Говорит что нету такой ![]() Я немного изменил скрипт:
Вот что получается в рез-те:
т.е. скрипт перебирает далеко не все варианты сочетания символов.
Помоему, быстрее не будет. 2 Morpheus
Лучше на Паскале напиши ![]() |
||||||||
|
|||||||||
Sardar |
|
||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Ты серьезно ![]()
Я же сказал поздно было, туплю ![]()
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||
|
|||||||
lifer |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
Sardar
Млин, предупреждать надо ![]() А то я уже начал думать что у меня крыша едет... ![]()
Сенкс. Всё заработало. Теперь осталось только разобраться как именно всё это работает ![]() У меня что-то последние два дня голова совсем не варит. Ничего понять не могу. Пить меньше надо... ![]() И ещё, просто для интереса: эту же задачу возможно решить с помощью рекурсии? |
||||
|
|||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Самый простой способ - представь себе диски как в кодовом замке. На диски нанесенны все символы из алфавита, количество дисков равно количеству символов в пароле. Каждый раз ты крутишь последний диск на одно деление, как только диск сделал полный оборот ты крутишь на одно деление следующй диск. Как только первый(самй последний) диск сделал полный оборт обьявляем что все комбинации перебранны.
Здесь рекурсия не нужна(даже не знаю как ее прикрутить ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
lifer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
Понятно. Спасибо за объяснение.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |