Иногда разработка алгоритмов требует естественного мыслительного процесса из реальной жизни. Когда мы наблюдаем за нашей реальной деятельностью, мы обнаруживаем, что она наполнена условиями (если и еще), повторениями (циклами), логическими структурами, оптимизациями, радомизациями, подсчетом, сортировкой, планированием, компромиссами и многим другим.
Например, когда наш рейс запланирован на определенное время, мы предпринимаем все возможные действия, чтобы добраться до аэропорта и успеть на рейс. К сожалению, если мы опоздаем на рейс, мы снова анализируем ситуацию и рассматриваем лучший вариант. Итак, некоторые наши действия в реальной жизни тщательно спланированы, логичны и часто включают в себя наихудшие сценарии, навыки решения проблем и терпение.
Применяя тот же естественный мыслительный процесс к разработке алгоритмов, мы можем находить первоначальные решения на основе заданных ограничений и разрабатывать логику программирования для реализации этих решений.
Разница между алгоритмами в реальной жизни и алгоритмами в компьютерном программировании
- Одно существенное отличие — это масштаб! В реальной жизни наши возможности ограничены, и мы можем обрабатывать данные в меньших масштабах. С другой стороны, компьютеры могут легко обрабатывать данные в больших масштабах, то есть в миллионах или миллиардах.
- Еще одно отличие заключается в эффективности. В реальной жизни для нас будет ничего страшного, если мы не будем следовать эффективному подходу к решению реальных проблем. Однако с точки зрения компьютеров при работе в миллиардном масштабе эффективность является одним из важнейших требований для обеспечения производительности системы.
- Еще одно отличие заключается в точности. В реальной жизни для нас было бы приемлемо излагать свои задачи примерно на каком-нибудь человеческом языке. Но в компьютерном программировании нам необходимо взаимодействовать с компьютером, используя четко определенную логику, написанную на языке программирования. В случае ошибки компьютер выдаст неверный результат.
Алгоритмы в истории
Теперь вопрос: почему мы использовали алгоритмы до изобретения компьютеров? Одним из возможных ответов может быть: мы использовали их для эффективного решения часто возникающих реальных проблем. Например, почему мы давно в истории разработали структуру, позволяющую разделить большой промежуток времени на небольшие отрезки лет, месяцев, недель, дней и т. д.? Одним из возможных ответов может быть то, что мы хотели эффективно управлять временем, решая проблему тайм-менеджмента с помощью ее более мелких подзадач!
Давайте посмотрим на некоторые древние алгоритмы, которые актуальны и сегодня:
- Алгоритм Евклида для нахождения наибольшего общего делителя двух чисел был разработан 2000 лет назад.
- Алгоритм Урдхва Тирьякбхьяма используется ведическими математиками для быстрого умножения целых чисел.
- Арифметические алгоритмы, используемые вавилонянами и египтянами, например алгоритм деления.
- Решето Эратосфена использовалось греческими математиками для поиска простых чисел.
- Криптографические алгоритмы, используемые арабскими математиками для взлома кодов.
- Китайская теорема об остатках была открыта китайскими математиками в III веке нашей эры.
- Вавилонско-шумерский метод извлечения корня — один из первых задокументированных примеров математического алгоритма.
- Алгоритм исключения Гаусса Гаусса для решения систем линейных уравнений.
- Метод Чакравалы – это циклический алгоритм, разработанный Брахмагуптой, Бхаскарой и Джаядевой для решения неопределенных квадратных уравнений.
Еще немного инсайтов!
- Некоторые из самых больших проблем, с которыми сталкиваются компьютеры и человеческий разум в реальной жизни, схожи: как управлять ограниченным пространством, конечным временем, неизвестными неизвестными, неполной информацией и т. д.
- Точно так же, как алгоритмы, работающие на компьютерах, влияют на нашу повседневную жизнь, алгоритмы, которым мы следуем в реальной жизни, также оказывают аналогичное влияние.
- Сегодня мы решаем реальные проблемы, используя алгоритмы и компьютеры. Таким образом, естественный мыслительный процесс в реальной жизни важен для понимания различных требований и ограничений при разработке таких приложений.
- По мере увеличения вычислительной мощности алгоритмы становятся более сложными. Сегодня мы находимся на пороге новой эры искусственного интеллекта и квантовых вычислений, и алгоритмы развиваются на каждом этапе технологических инноваций. Однако, несмотря на изменения и достижения, основные принципы алгоритмов остаются такими же, какими они были на протяжении всей истории.
Заключение!
Итак, алгоритмы присутствуют в каждом поколении и их можно найти в различных формах и приложениях с древних времен до наших дней. Это неотъемлемая часть нашей повседневной жизни, и она будет продолжать играть жизненно важную роль по мере развития технологий. Наслаждайтесь обучением, наслаждайтесь алгоритмами!
Если у вас есть какие-либо отзывы, напишите нам по адресу [email protected]. Чтобы изучить структуры данных и алгоритмы для собеседований, вы можете изучить наши персонализированные курсы для самостоятельного обучения.