Если вы любитель математики, пролистайте книгу до конца этой главы и полюбуйтесь еще одной знаменитой и прекрасной демонстрацией в решениях к упражнениям.
Так что количество возможностей выбрать числа из дюжины, представленной выше, действительно равно двум в двенадцатой степени (4096).
Их, конечно, можно перепробовать. Однако легко представить, что если бы у нас была, к примеру, сотня чисел, найти ответ таким образом было бы просто немыслимо. Вообще, существует много задач подобного типа. Как распределить частоты для независимых радиостанций, определить, является ли число простым, проверить счета, минимизировать протяженность сети железных дорог – во всех этих случаях метод проб и ошибок настолько же неизбежен, насколько непрактичен.
Одна задача может быть и детской игрушкой, и настоящей головоломкой. Все зависит от размера привходящей информации. Интересная разновидность взаимоотношений, которая заслуживает изучения, – это связь между вычислением необходимого времени и проработанным количеством информации. Возможны практически все сценарии.
Иногда сложность проблемы не зависит от объема информации. Это мечта для пользователя и кошмар для продавца компьютеров, потому что он не может больше увеличивать цену за счет этого! Присвоение новых автомобильных номеров, к примеру, требует усилий, которые ни в коей мере не зависят от количества номеров в пользовании.
Чаще все-таки время расчетов увеличивается пропорционально объему проработанной информации. Это линейная функция, как в случае суммы, где удвоение количества чисел, которые нужно сложить, попросту увеличивает объем работы вдвое.
В большинстве случаев, тем не менее, сложность увеличивается быстрее, чем количество информации, как показано на рис. 5.2. Сортировка миллиона карточек – это намного больший объем работы, чем тысяча отдельных сортировочных процедур для тысячи карточек, и компания, выросшая втрое, должна ввести систему учета, возможно, в десять раз более сложную, чем та, которую она заменила.
Рис. 5.2.
Соотношение объема информации и сложности работыПрактически для всех задач время расчетов увеличивается намного быстрее, чем объем задействованной информации.
Небольшое упражнение, которое мы проделали, наглядно демонстрирует эффект снежного кома. Количество возможных комбинаций взлетает (математики называют это комбинаторным взрывом), и за определенным порогом эта задача превышает возможности даже самых современных компьютеров.
Выражение, которое мы цитировали, можно изменить на «ядерный взрыв» в случае с шахматами, где предвосхищение даже десяти ходов попросту находится за пределами того, что может сегодня информатика.
Вопреки нашим предположениям сегодня пределы расчетов очень редко связаны с трудностью самих расчетов. Чаще они возникают из-за объема информации, которую надо проработать, и необходимости астрономическое количество раз повторить простые расчеты.
И здесь мы должны снова взглянуть на вопрос и обратиться к нашим творческим способностям, которые, если только мы уверены в них, всегда дадут нам преимущество перед любой машиной.
Возвращаясь к начальной задаче – просто измените свое восприятие, подойдите к делу иначе! Попытайтесь увидеть не просто 12 случайных чисел, поищите что-нибудь необычное, какую-нибудь закономерность. Посмотрев на 12 чисел боковым, латеральным, взглядом, убеждаемся, что все они кратны трем, кроме 53 и 17, состоящих из чисел кратных трем плюс 2. Эврика!
Дело в том, что 100 (сумма, которую нам нужно получить) – это число кратное трем плюс 1. Решение, следовательно, обязательно включит в себя 53 и 17. Это единственный способ создать число кратное трем плюс 1, то есть в данном случае 70. Недостающее число (30) получаем как сумму 6+9+15.
Эта задачка из двенадцати чисел была одной из игр, которую стюардессы авиакомпании British Arways подсовывали детям, чтобы на время их утихомирить.
Наше небольшое упражнение также показывает абсолютную необходимость творческого подхода в эпоху информации. Использование латероскопии помогает нам выйти за пределы заданного механизма, потому что момент творчества время от времени прерывает алгоритм. В действительности большой логики в том, что мы внезапно подумали о числах кратных трем не было. Если бы это было логично, мы могли бы запрограммировать компьютер на такие операции. Нас вела уверенность, что дополнительный взгляд на проблему найдет альтернативу «грубой силе», без которой, как казалось на первый взгляд, не обойтись.
Мечта компьютерного ученого состоит в том, чтобы найти для отдельно взятой задачи методику, при которой время расчетов не будет зависеть от объема информации, которую нужно переработать и которая позволит решить систему трех уравнений с тремя неизвестными так же быстро, как и систему из двух уравнений с двумя неизвестными.