появление самых первых математических алгоритмов предшествует даже трудам аль-Хорезми. На глиняной табличке, найденной недалеко от Багдада, шумеры четыре тысячи лет назад описали схему деления столбиком.
Но область действия алгоритмов не сводится исключительно к математике. Когда вы печете хлеб, вы используете рецепт и, значит, следуете алгоритму. Когда вы вяжете свитер по рисунку, вы следуете алгоритму. Алгоритмы были неотъемлемой частью жизни человека со времен каменного века.
В этой книге мы рассмотрим идею разработки алгоритмов для нашей жизни и найдем лучшие решения для задач, с которыми все мы сталкиваемся ежедневно.
Взгляд на нашу повседневную жизнь через призму компьютерной науки может повлиять на вашу жизнь на различных уровнях. В первую очередь, это дает нам четкие практические рекомендации для решения определенных задач. Правило оптимальной остановки подсказывает нам, сколько раз стоит отмерить, прежде чем наконец отрезать.
Принцип соотношения между поиском новой информации и применением имеющейся помогает нам обрести баланс между стремлением к новым впечатлениям и умением наслаждаться привычными вещами. Теория сортировки подскажет, как организовать рабочее место. Основные принципы технологии кеширования помогут, если необходимо правильно разложить вещи в шкафу или ящиках. Планирование поможет нам правильно распределить время.
На следующем уровне мы сможем воспользоваться терминологией программирования для понимания глубинных принципов работы каждой из этих областей науки. Как сказал Карл Саган, «наука – это скорее определенный образ мышления, нежели просто совокупность знаний».
Даже в тех случаях, когда жизнь слишком хаотична и в ней нет места для четкого численного анализа или готового ответа, использование определенных примеров и моделей, отработанных на более упрощенных вариантах тех же задач, позволит нам постичь суть вещей и двигаться дальше.
Проще говоря, взгляд через призму компьютерной науки может раскрыть нам природу человеческого разума, значение понятия рациональности и ответить на извечный вопрос – «как жить?». Изучение мыслительных процессов человека как средства решения фундаментальных вычислительных задач, которые ставит перед нами жизнь, может в корне изменить наше представление о человеческой рациональности.
Сам факт того, что изучение основ работы компьютера может открыть нам глаза на то, как следует жить и принимать решения, во что верить и как поступать, может показаться многим не просто крайне примитивным, но и, по сути, бессмысленным. Даже если в этом есть рациональное зерно, захотим ли мы получить ответы на все эти вопросы?
Образ жизни роботов из научной фантастики – явно не тот, которому хочется следовать. Отчасти это так, поскольку компьютеры в первую очередь ассоциируются у нас с бездушными механическими запрограммированными системами, которые строго придерживаются