Фрагмент для ознакомления
2
Введение
Каждый человек ежедневно встречается со множеством задач от простых и хорошо известных в очень сложных. Для многих задач существуют определенные правила (инструкции, команды), объясняют исполнителю, как решать данную проблему. Эти правила человек может изучить или заранее сформулировать сама в процессе решения задачи. Чем точнее описаны правила, тем быстрее человек овладеет ими и будет эффективнее их использовать. В нашей жизни мы постоянно составляем описание некоторой последовательности действий для достижения желаемого результата, поэтому понятие алгоритма не является для нас чем-то новым и необычным.
1 Алгоритм и его свойства
1.1 Понятие алгоритма
Алгоритм – это набор пошаговых инструкций, удовлетворяющих определенному набору свойств.
Алгоритм – это эффективный, действенный и лучший метод, который можно использовать для выражения решения любой проблемы в ограниченном пространстве и времени на четко определенном формальном языке . Начиная с начального состояния, инструкции описывают процесс или вычислительный процесс, который при исполнении проходит через конечное число четко определенных последовательных состояний, в конечном итоге производя «выход» и завершаясь в конечном конечном состоянии [1, c. 112].
Другими словами, можно сказать, что:
1. Пошаговая процедура решения любой задачи называется алгоритмом.
2. Алгоритм - это конечный набор инструкций, выполнение которых позволяет выполнить конкретную задачу.
3. Алгоритм - это последовательность вычислительных шагов, которые преобразуют входные данные в ценные или требуемые выходные данные.
4. Любой особый метод решения определенной задачи называется алгоритмом [7, .c 139].
Есть некоторые характеристики, которым должен следовать каждый алгоритм [3, c. 95]:
1. Указанные входные данные - входные данные - это информация, которая должна быть изменена во время расчета для создания выходных данных. Алгоритм должен иметь по крайней мере 0 всех охарактеризованных входов. Точность ввода требует, чтобы вы понимали, какого рода информация, в каком объеме и в какой структуре должна быть информация.
2. Указанные выходные данные - выходные данные представляют собой информацию, полученную в результате расчета. Алгоритм должен иметь по крайней мере 1 все вокруг охарактеризованных выходов и должен координировать идеальный выход. Точность вывода также требует, чтобы вы понимали, какого рода информацию, сколько и какой структуры должен быть вывод.
3. Ясный и недвусмысленный - алгоритмы должны определять каждый шаг, и каждый из его шагов должен быть ясным во всех действиях и указывать только на одно значение. Поэтому алгоритм должен быть четким и однозначным. Подробности каждого шага должны быть также объяснены (включая то, как поступать с ошибками). Он должен содержать все количественное, а не субъективное.
4. Выполнимость - алгоритм должен быть эффективным, что подразумевает, что все средства, необходимые для вывода, должны быть осуществимы с доступными ресурсами. Он не должен содержать каких-либо бессмысленных и лишних усовершенствований, которые могли бы сделать алгоритм неэффективным.
5. Независимый - алгоритм должен иметь пошаговые инструкции, которые не должны зависеть от какого-либо программного кода. Это должно быть с конечной целью, чтобы вполне мог произойти внезапный всплеск спроса на любой из диалектов программирования.
6. Конечность - алгоритм должен в конце концов завершиться. Остановка может означать, что вы получите нормальный результат. Алгоритмы должны завершиться после ограниченного количества шагов. Алгоритм не должен быть безграничным и последовательно заканчиваться после конечного числа шагов. Нет причин создавать безграничный алгоритм, поскольку он будет для нас бессмысленным.
1.2 Типы алгоритмов
Есть много типов алгоритмов, но самые фундаментальные типы алгоритмов:
1. Алгоритм грубой силы
Алгоритм грубой силы, по сути, пытается использовать все шансы, пока не будет найден приемлемый результат. Это наиболее фундаментальный и наименее сложный тип алгоритма . Кроме того, такие типы алгоритмов используются для поиска идеального или лучшего решения, поскольку он проверяет все потенциальные решения [6, .c 112].
Кроме того, он используется для поиска приемлемого решения (не самого лучшего), в основном останавливаясь, когда найден ответ на проблему. Это ясный способ решения проблемы, который является первым подходом, который приходит нам в голову после наблюдения за проблемой.
2. Рекурсивный алгоритм
Этот тип алгоритма зависит от рекурсии. В рекурсии проблема понимается путем разбиения ее на подзадачи аналогичного типа и повторного вызова себя до тех пор, пока проблема не будет раскрыта с помощью базового условия.
Он разрешает базовый случай законно, а затем повторяется каждый раз с более прямым или более простым вводом. Он используется для решения проблем, которые можно разбить на менее сложные или более скромные проблемы того же типа.
3. Алгоритм динамического программирования
Этот тип алгоритма также называется техникой мемоизации. Это потому, что в этом случае идея состоит в том, чтобы сохранить недавно определенный результат, чтобы попытаться не вычислять его снова и снова [3, c. 128].
В динамическом программировании разделите непредсказуемую проблему на более скромные подзадачи и отложите результат на некоторое время позже. Проще говоря, мы можем сказать, что он вспоминает предыдущий результат и использует его для открытия новых результатов.
4. Алгоритм разделяй и властвуй
В алгоритме «Разделяй и властвуй» идея состоит в том, чтобы решить проблему в двух областях: первый раздел разбивает проблему на подзадачи аналогичного типа. Второй раздел предназначен для автономного решения более скромной проблемы и последующего добавления объединенного результата для создания последнего ответа на проблему.
5. Жадный алгоритм
Теперь перейдем к другому типу, который является жадным алгоритмом, поэтому здесь решение создается по частям. Выбор следующей роли осуществляется с целью оказания внезапной помощи и никогда не рассматривает варианты, которые предлагались в последнее время [5, c. 108].
2 Свойства алгоритмов
Выполняя алгоритм, исполнитель может не вникать в смысл того, что он делает, и вместе с тем получить нужный результат, то есть исполнитель действует формально. Поэтому для правильного построения алгоритма необходимо знать систему команд исполнителя, быть уверенным, что выполнение алгоритма завершится за конечное число шагов. Поэтому говорят о некоторых общих свойствах алгоритмов.
Рассмотрим подробнее каждую свойство.
1. Дискретность - возможность разбиения алгоритма на отдельные элементарные действия [1, c. 86].
Когда читаем книгу, мы выполняем последовательность команд:
1. взять книгу,
2. открыть первую страницу,
3. пока не дошли до конца книги выполнять следующие действия:
а) прочитать текст,
б) перевернуть на следующую страницу.
Когда вычисляем значение выражения, разбиваем его на отдельные действия, можно выполнить. Опишем алгоритм при вычислении выражения: (50-20) * 3 + 45: 9 . По правилам вычисления выражений:
1. 50-20 = 30.
2. 30 * 3 = 90.
3. 45: 9 = 5.
4. 90 + 5 = 95.
Шаги 1-4 - называют еще элементарными действиями .
Понятность - последовательность действий должны быть понятными исполнителю.
Например, описан алгоритм заваривания чая будет понятным ребенку лет 8, однако ребенок до года его не выполнит именно из-за нарушения этого свойства алгоритма.
Какую последовательность действий необходимо выполнить, чтобы позвонить по телефону ?
1. Вставить телефонную карточку
2. Снять трубку
3. Набрать номер
Еще лет десять назад для того, чтобы позвонить использовали не карточку, а монетку. Позже появились таксофоны, использовали карточки. Надо было видеть человека, которому не объяснили, как вставлять в отверстие карточку. Для нее до сих пор понятный алгоритм звонка по телефону превратился в ужас, потому что нарушилась свойство понятности.
Когда мы будем писать программы на следующем уроке, то они должны учитывать возможности компьютера и особенности языка программирования Python.
2. Конечности алгоритма - завершение алгоритма за конечное число шагов [4, c. 120].
Заключение
Итак,алгоритмом называется понятное и точное предписание исполнителю выполнить последовательность действий, направленных на достижение указанной цели или на решение поставленной задачи.
Под исполнителем алгоритма мы понимаем любое существо (живую или неживую), которая способна выполнить алгоритм.
Понятие алгоритма является фундаментальным, то есть таким, которое не определяется через другие еще более простые понятия (для сравнения в физике - понятие пространства и времени, в математике - точка).
Любой исполнитель (и компьютер в частности) может выполнять только ограниченный набор операций (экскаватор копает яму, учитель учит, компьютер выполняет арифметические действия).
Фрагмент для ознакомления
3
Список использованных источников
1. Балдин, К.В. Информатика и информационные системы в экономике: Учебное пособие / К.В. Балдин. - М.: НИЦ ИНФРА-М, 2016. - 218 c.
2. Блиновская, Я.Ю. Введение в информатику: Учебное пособие / Я.Ю. Блиновская, Д.С. Задоя. - М.: Форум, НИЦ ИНФРА-М, 2016. - 112 c.
3. Васильков, А.В. Информатика: Учебное пособие / А.В. Васильков, А.А. Васильков, И.А. Васильков. - М.: Форум, 2017. - 528 c.
4. Завгородний, В.И. Информатика для экономистов: Учебник для бакалавров / В.П. Поляков, Н.Н. Голубева, В.И. Завгородний; Под ред. В.П. Полякова. - М.: Юрайт, 2016. - 524 c.
5. Информатика. Базовый курс: учебное пособие для высших технических учебных заведений / [С. В. Симонович и др.]. – СПб: Питер, 2017. – 639 с.
6. Иопа, Н. И. Информатика: (для технических специальностей): учебное пособие / Н. И. Иопа. – Москва: КноРус, 2016. – 469 с.
7. Основы информатики: учебное пособие / [Г. В. Алехина и др.]. – М.: Маркет ДC, 2016. – 464 с.
8. Патрушина, С.М. Информатика: Учебное пособие / С.М. Патрушина, Н.А. Аручиди. - М.: Мини Тайп, 2016. - 144 c.