Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Оптимизация полного перебора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Самое длинное слово http://www.cyberforum.ru/cpp-beginners/thread828198.html
Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите это слово и его длину. Формат входных данных Задана одна строка, содержащая пробелы. Слова разделены ровно одним...
C++ Второклассная задача У второклассников очень популярна следующая задача: 101=1 8181515=4 1111112=0 8888888=14 http://www.cyberforum.ru/cpp-beginners/thread828194.html
Делаем срезы C++
Дана строка. Сначала выведите третий символ этой строки. Во второй строке выведите предпоследний символ этой строки. В третьей строке выведите первые пять символов этой строки. В...
C++ одномерные массивы (Найдите 6-ой член последовательности)
Найдите 6-ой член последовательности A(i)=A(i-1)*A(i-1)+1 , если А(1)=5.
C++ Максимальная длина монотонного фрагмента http://www.cyberforum.ru/cpp-beginners/thread828184.html
Дана последовательность натуральных чисел, завершающаяся число 0. Определите наибольшую длину монотонного фрагмента последовательности (то есть такого фрагмента, где все элементы либо больше...
C++ минимальный и максимальный элемент последовательности Найти минимальный и максимальный элемент последовательности. Язык Си. Помогите, пожалуйста, поправьте подробнее

Показать сообщение отдельно
hofmn
Helter Skelter
61 / 61 / 1
Регистрация: 19.09.2012
Сообщений: 133

Оптимизация полного перебора - C++

04.04.2013, 18:59. Просмотров 2306. Ответов 19
Метки (Все метки)

Пусть требуется подобрать пин-код длиной 4 символа (может содержать как цифры и буквы, так и другие символы). Использую метод полного перебора:
ааа
ааб
...
яяя
Как оптимизировать этот алгоритм? Какие есть альтернативы такому способу?

Моя реализация:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
string Find (string realPin)  // передаем код, который нужно подобрать
{
    string findedPin = "****";
 
    for (uint j = 32; j < 126; ++j)
    {
        findedPin[0] = j; // [a][*][*][*]
        for (uint k = 32; k < 126; ++k)
        {
            findedPin[1] = k; // [a][a][*][*]
            for (uint l = 32; l < 126; ++l)
            {
                findedPin[2] = l; // [a][a][a][*]
                for (uint m = 32; m < 126; ++m)
                {
                    findedPin[3] = m; // [a][a][a][a] 
                    if (findedPin == realPin) // aaaa == pin ? 
                    {
                        return findedPin;
                    }
                }
            }
        }
    }
    return "FATAL ERROR";
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru