Форум программистов, компьютерный форум 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. Определите наибольшую длину монотонного фрагмента последовательности (то есть такого фрагмента, где все элементы либо больше предыдущего, либо меньше). Числа, следующие за числом 0, считывать не нужно. Ввод Вывод 1 3 7 9 0
C++ минимальный и максимальный элемент последовательности Найти минимальный и максимальный элемент последовательности. Язык Си. Помогите, пожалуйста, поправьте подробнее

Показать сообщение отдельно
hofmn
Helter Skelter
 Аватар для hofmn
61 / 61 / 1
Регистрация: 19.09.2012
Сообщений: 133
04.04.2013, 18:59     Оптимизация полного перебора
Пусть требуется подобрать пин-код длиной 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";
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru