Как можно упростить?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Santa
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 101
Зарегистрирован: 07.05.2004 (Пт) 1:34
Откуда: KZ

Как можно упростить?

Сообщение Santa » 22.02.2006 (Ср) 22:15

Как можно упростить этот код, чтото вроде брутфорса, построения словоря. Здесь только два разряда символов, а если так продолжать то уже к пяти разрядам так сказать много не говоря о 10 разрядах.
Мож кто сталкивался а, помогите?

Код: Выделить всё

        For b = 65 To 90
            For c = 65 To 90
                List.AddItem Chr(b) & Chr(c)
            Next c
            For c = 97 To 122
                List.AddItem Chr(b) & Chr(c)
            Next c
            For c = 48 To 57
                List.AddItem Chr(b) & Chr(c)
            Next c
        Next b
       
        For b = 97 To 122
            For c = 65 To 90
                List.AddItem Chr(b) & Chr(c)
            Next c
            For c = 97 To 122
                List.AddItem Chr(b) & Chr(c)
            Next c
            For c = 48 To 57
                List.AddItem Chr(b) & Chr(c)
            Next c
        Next b
       
        For b = 48 To 57
            For c = 65 To 90
                List.AddItem Chr(b) & Chr(c)
            Next c
            For c = 97 To 122
                List.AddItem Chr(b) & Chr(c)
            Next c
            For c = 48 To 57
                List.AddItem Chr(b) & Chr(c)
            Next c
        Next b



И это только для двух разрядов, а если 10 то как? :cry:
SIVIS PACEM PARA BELLUM

Random
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 21.02.2006 (Вт) 6:08
Откуда: Пермь

Сообщение Random » 22.02.2006 (Ср) 23:02

Не знаю что такое "брутфорс", но мне кажется рекурсия тебя спасёт.
(или оканчательно запутает :lol: )
:)

CORBA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 22.11.2003 (Сб) 13:41
Откуда: Ukraine-Crimea-Feodosia

Сообщение CORBA » 22.02.2006 (Ср) 23:30

Random писал(а):Не знаю что такое "брутфорс", но мне кажется рекурсия тебя спасёт.
(или оканчательно запутает :lol: )
Ты знаешь сколько можно выдуть комбинаций из 6 символов? Ого-го!!!! Не факт, но при таком подходе программа реально разрастётся в ОЗУ, так как будет постоянно выделяться память под новую копию функции. Пусть даже она будет к примеру в 10 байт, 10байт умножаем к примеру на 1000000000 комбинаций и получаем .... :)
У каждой сложной задачи есть множество простых для понимания, но неправильных решений.

CORBA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 22.11.2003 (Сб) 13:41
Откуда: Ukraine-Crimea-Feodosia

Сообщение CORBA » 23.02.2006 (Чт) 0:50

2Santa ты выбрал самый явный подход вложенность циклов и их последовальность на первый взгляд можно оптимизировать. На твоём месте я для начала бы перебросил необходимые символы в массив, помойму так с ними будет легче работать.
Я сам когда что-то похожее делал использовал тот же метод что и ты, но мне надо было всего из 4 символов комбинации перебрать и там он был оправдан. Наверное есть способ получше, надо подумать .
У каждой сложной задачи есть множество простых для понимания, но неправильных решений.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 68

    TopList