Что такое компьютерные алгоритмы и как они работают?

Оглавление:

Что такое компьютерные алгоритмы и как они работают?
Что такое компьютерные алгоритмы и как они работают?

Видео: Что такое компьютерные алгоритмы и как они работают?

Видео: Что такое компьютерные алгоритмы и как они работают?
Видео: 7 правил, как составить цепляющее резюме - YouTube 2024, Май
Anonim
Если вы не занимаетесь математикой или программированием, слово «алгоритм» может быть греческим для вас, но это один из основных элементов всего, что вы используете, чтобы прочитать эту статью. Вот краткое объяснение того, что они есть, и как они работают.
Если вы не занимаетесь математикой или программированием, слово «алгоритм» может быть греческим для вас, но это один из основных элементов всего, что вы используете, чтобы прочитать эту статью. Вот краткое объяснение того, что они есть, и как они работают.

Отказ от ответственности: я не учитель математики или информатики, поэтому не все термины, которые я использую, являются техническими. Это потому, что я пытаюсь объяснить все на простом английском языке, потому что людям не очень нравится математика. Это, как говорится, есть какая-то математика, и это неизбежно. Математические вундеркинды, не стесняйтесь исправлять или лучше объяснять в комментариях, но, пожалуйста, сохраните это просто для математически недостойных нас.

Изображение Ян Руотсала

Что такое алгоритм?

Слово «алгоритм» имеет этимологию, аналогичную «алгебре», за исключением того, что это относится к самому арабскому математику, аль-Хорезми (просто интересный лакомый кусочек). Алгоритм для не-программистов среди нас представляет собой набор инструкций, которые принимают входные данные A и предоставляют вывод B, который каким-то образом изменяет данные. Алгоритмы имеют широкий спектр приложений. В математике они могут помочь рассчитать функции из точек в наборе данных, среди гораздо более продвинутых. Помимо их использования в программировании, они играют важную роль в таких вещах, как сжатие файлов и шифрование данных.

Основной набор инструкций

Скажем, ваш друг встречает вас в продуктовом магазине, и вы направляете его к себе. Вы говорите такие вещи, как «заходите через правые двери», «пройдите рыбную секцию слева», и «если вы увидите молочную ферму, вы передали меня». Алгоритмы работают так. Мы можем использовать блок-схему, чтобы проиллюстрировать инструкции, основанные на критериях, которые мы знаем заранее или узнаем во время процесса.

(изображение под названием «Ледокольная рутина» EDIT: любезно предоставлено Trigger and Freewheel)
(изображение под названием «Ледокольная рутина» EDIT: любезно предоставлено Trigger and Freewheel)

Начиная с START, вы должны идти по пути, и в зависимости от того, что происходит, вы следуете за «потоком» до конечного результата. Блок-схемы - это визуальные инструменты, которые более понятным образом представляют собой набор инструкций, используемых компьютерами. Аналогично, алгоритмы помогают сделать то же самое с более математическими моделями.

диаграммы

Давайте используем график, чтобы проиллюстрировать различные способы, которыми мы можем дать указания.

Мы можем выразить этот график как связь между всеми его точками. Чтобы воспроизвести это изображение, мы можем дать набор инструкций кому-то другому.
Мы можем выразить этот график как связь между всеми его точками. Чтобы воспроизвести это изображение, мы можем дать набор инструкций кому-то другому.

Способ 1

Мы можем представить это как ряд точек, и информация будет следовать стандартной форме графика = {(x1, y1), (x2, y2), …, (xn, yn)}.

graph = {(0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)}

Очень легко построить каждую точку, одну за другой, и подключить их к предыдущей точке. Однако представьте себе график с тысячей точек или несколькими сегментами, которые будут проходить каждый путь. В этом списке будет много данных, верно? И тогда, когда нужно подключать каждого, по одному, может быть боль.

Способ 2

Другое, что мы можем сделать, это дать начальную точку, наклон линии между ней и следующей точкой и указать, где ожидать следующую точку, используя стандартную форму графика = {(начальная точка}, [m1, x1, h1 ], …, [mn, xn, hn]}. Здесь переменная «m» представляет собой наклон линии, «x» представляет собой направление для подсчета в (x или y), а «h» сообщает вам, как многие считают в указанном направлении. Вы также можете запомнить график после каждого движения.

graph = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [-3,x,1], [-3,x,1]}

Вы получите тот же график. Вы можете видеть, что последние три термина в этом выражении одинаковы, поэтому мы можем обрезать это, просто сказав «повторить это три раза» каким-то образом. Предположим, что в любое время, когда вы видите переменную «R», это означает повторить последнее. Мы можем это сделать:

graph = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [R=2]}

Что, если отдельные точки не имеют большого значения, и только сам граф? Мы можем консолидировать последние три раздела:

graph = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,3]}

Это немного сокращает время от того, где они были раньше.

Способ 3

Давайте попробуем сделать это по-другому.

y=0, 0≤x≤3 x=0, 0≤y≤3 y=x, 3≤x≤5 y=2.5x-7.5, 5≤x≤7 y=-3x+29, 7≤x≤8 y=-3x+29, 8≤x≤9 y=-3x+29, 9≤x≤10

Здесь мы имеем это в чистых алгебраических терминах. Еще раз, если сами точки не имеют значения, а только график, мы можем объединить последние три элемента.

y=0, 0≤x≤3 x=0, 0≤y≤3 y=x, 3≤x≤5 y=2.5x-7.5, 5≤x≤7 y=-3x+29, 7≤x≤10

Теперь, какой метод вы выбираете, зависит от ваших способностей. Может быть, вы отлично справляетесь с математикой и графикой, поэтому выбираете последний вариант. Может быть, вы хорошо учитесь, поэтому выбираете второй вариант. Однако в области компьютеров вы выполняете множество различных задач, и способность компьютера не меняется. Поэтому алгоритмы оптимизированы для выполнения задач.

Еще один важный момент, который следует отметить, заключается в том, что каждый метод использует ключ. Каждый набор инструкций бесполезен, если вы не знаете, что с ними делать. Если вы не знаете, что вы должны строить каждую точку и подключать точки, первый набор точек ничего не значит. Если вы не знаете, что означает каждая переменная во втором методе, вы не будете знать, как их применять, как ключ к шифру. Этот ключ также является неотъемлемой частью использования алгоритмов, и часто этот ключ находится в сообществе или через «стандарт».

Сжатие файлов

Когда вы загружаете.zip-файл, вы извлекаете содержимое, чтобы вы могли использовать все, что внутри него.В настоящее время большинство операционных систем могут погружаться в.zip-файлы, такие как обычные папки, делая все в фоновом режиме. На моей машине с Windows 95 более десяти лет назад мне пришлось извлечь все вручную, прежде чем я смог увидеть что-то большее, чем имена файлов внутри. Это потому, что то, что хранилось на диске как.zip-файл, не было в удобной форме. Подумайте о выдвижной кушетке. Когда вы хотите использовать его в качестве кровати, вам нужно снять подушки и развернуть его, что занимает больше места. Когда вы не нуждаетесь в этом, или хотите его транспортировать, вы можете сбросить его обратно.

Алгоритмы сжатия настраиваются и оптимизируются специально для типов файлов, на которые они нацелены. Например, в аудиоформатах каждый использует другой способ хранения данных, которые при декодировании аудиокодеком подают звуковой файл, похожий на исходный сигнал. Для получения дополнительной информации об этих различиях ознакомьтесь с нашей предыдущей статьей: «Каковы различия между всеми этими аудиоформатами? Звуковые форматы без потерь и файлы.zip имеют одну общую черту: они оба дают исходные данные в своей точной форме после процесса декомпрессии. Потерянные аудиокодеки используют другие средства для экономии места на диске, такие как частоты обрезки, которые не могут быть услышаны человеческими ушами и сглаживают форму волны в секциях, чтобы избавиться от некоторых деталей. В конце концов, хотя мы, возможно, не сможем действительно услышать разницу между MP3 и CD-треком, определенно существует дефицит информации в первом.

Шифрование данных

Алгоритмы также используются для защиты данных или линий связи. Вместо того, чтобы хранить данные так, чтобы они использовали меньше дискового пространства, он хранится таким образом, который не может быть обнаружен другими программами. Если кто-то крадет ваш жесткий диск и начинает его сканировать, он может собирать данные, даже когда вы удаляете файлы, потому что сами данные все еще существуют, хотя местоположение пересылки к нему ушло. Когда данные зашифровываются, все, что хранится, не выглядит так, как есть. Обычно это выглядит случайным, как будто фрагментация со временем складывается. Вы также можете хранить данные и отображать их как другой тип файла. Файлы изображений и музыкальные файлы подходят для этого, так как они могут быть довольно большими без привлечения подозрительности, например. Все это делается с помощью математических алгоритмов, которые берут какой-то входной сигнал и преобразуют его в другой, очень специфический тип вывода. Дополнительные сведения о том, как работает шифрование, см. В разделе HTG. Объясняет: что такое шифрование и как оно работает?
Алгоритмы также используются для защиты данных или линий связи. Вместо того, чтобы хранить данные так, чтобы они использовали меньше дискового пространства, он хранится таким образом, который не может быть обнаружен другими программами. Если кто-то крадет ваш жесткий диск и начинает его сканировать, он может собирать данные, даже когда вы удаляете файлы, потому что сами данные все еще существуют, хотя местоположение пересылки к нему ушло. Когда данные зашифровываются, все, что хранится, не выглядит так, как есть. Обычно это выглядит случайным, как будто фрагментация со временем складывается. Вы также можете хранить данные и отображать их как другой тип файла. Файлы изображений и музыкальные файлы подходят для этого, так как они могут быть довольно большими без привлечения подозрительности, например. Все это делается с помощью математических алгоритмов, которые берут какой-то входной сигнал и преобразуют его в другой, очень специфический тип вывода. Дополнительные сведения о том, как работает шифрование, см. В разделе HTG. Объясняет: что такое шифрование и как оно работает?

Алгоритмы - это математические инструменты, которые обеспечивают множество применений в информатике. Они работают, чтобы обеспечить путь между начальной точкой и конечной точкой согласованным образом и предоставить инструкции для ее выполнения. Знаете больше, чем мы выделили? Поделитесь своими объяснениями в комментариях!

Рекомендуемые: