Идем от обратного. Перепишем алгоритм с последней цифры до первой: 21221 и командам присвоим обратные действия, то есть команда 1) станет "отними 1", а команда 2) "раздели на 2"
Проверим каждое число получившимся алгоритмом, если на выходе получается натуральное число, считаем, что алгоритм для этого числа допустим.
Например, число 42.
42/2 = 21
21-1 = 20
20/2 = 10
10/2 = 5
5-1 = 4
4 - натуральное число, следовательно для числа 42 алгоритм допустим.
Пример недопустимого алгоритма на примере числа 20:
20/2 = 10
10-1 = 9
9/2 = 4,5 - недопустимо, так как это число не может получиться при умножении целого натурального числа на 2
Алгоритмы как логико-математические средства отражают различные компоненты человеческой деятельности и тенденции, а сами алгоритмы в зависимости от цели, начальных условий задачи, путей её решения, определения действий исполнителя классифицируются следующим образом [2]:
механические алгоритмы, называемые детерминированными, жёсткими (например, алгоритм работы двигателя), задают определённые действия, обозначая их в единственной и достоверной последовательности, обеспечивая тем самым однозначный требуемый результат, если выполняются те условия процесса, для которых разработан алгоритм;
гибкие алгоритмы:
вероятностные (стохастические) алгоритмы дают программу решения задачи несколькими путями или приводящими к вероятному достижению результата;
эвристические алгоритмы – это алгоритмы, в которых достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и принятия решений, основанные на аналогиях, ассоциациях и опыте решения схожих задач;
линейные алгоритмы – наборы команд, выполняемых последовательно во времени друг за другом;
разветвляющиеся алгоритмы – алгоритмы, содержащие хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов;
циклические алгоритмы – алгоритмы, предусматривающие многократное повторение одного и того же действия (или действий) над исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов;
вс алгоритмы (процедуры) – алгоритмы, ранее разработанные и целиком используемые при алгоритмизации конкретных задач.
Рассмотрим подробнее три основных вида алгоритмов: линейный, разветвляющийся и циклический.
Линейный алгоритм. Приведём пример записи алгоритма в виде блок-схемы, в виде программы на алгоритмическом языке и на языке Паскаль.
В качестве примера рассмотрим решение задачи вычисления среднего арифметического из двух чисел, вводимых с клавиатуры (рис. 1.2).

Разветвляющийся алгоритм. В качестве примера рассмотрим алгоритм нахождения максимального из двух чисел, введённых с клавиатуры (рис. 1.3).

Рис. 1.3. Пример разветвляющегося алгоритма
Циклический алгоритм. Работу циклического алгоритма рассмотрим на примере нахождения суммы чётных чисел, находящихся в диапазоне от 0 до n (n вводится с клавиатуры) (рис. 1.4).
Допустимые входные данные: 42, 26, 50, 82
Недопустимые входные данные: 20, 28, 40, 101
Объяснение:
Идем от обратного. Перепишем алгоритм с последней цифры до первой: 21221 и командам присвоим обратные действия, то есть команда 1) станет "отними 1", а команда 2) "раздели на 2"
Проверим каждое число получившимся алгоритмом, если на выходе получается натуральное число, считаем, что алгоритм для этого числа допустим.
Например, число 42.
42/2 = 21
21-1 = 20
20/2 = 10
10/2 = 5
5-1 = 4
4 - натуральное число, следовательно для числа 42 алгоритм допустим.
Пример недопустимого алгоритма на примере числа 20:
20/2 = 10
10-1 = 9
9/2 = 4,5 - недопустимо, так как это число не может получиться при умножении целого натурального числа на 2
Объяснение:
Алгоритмы как логико-математические средства отражают различные компоненты человеческой деятельности и тенденции, а сами алгоритмы в зависимости от цели, начальных условий задачи, путей её решения, определения действий исполнителя классифицируются следующим образом [2]:
механические алгоритмы, называемые детерминированными, жёсткими (например, алгоритм работы двигателя), задают определённые действия, обозначая их в единственной и достоверной последовательности, обеспечивая тем самым однозначный требуемый результат, если выполняются те условия процесса, для которых разработан алгоритм;
гибкие алгоритмы:
вероятностные (стохастические) алгоритмы дают программу решения задачи несколькими путями или приводящими к вероятному достижению результата;
эвристические алгоритмы – это алгоритмы, в которых достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и принятия решений, основанные на аналогиях, ассоциациях и опыте решения схожих задач;
линейные алгоритмы – наборы команд, выполняемых последовательно во времени друг за другом;
разветвляющиеся алгоритмы – алгоритмы, содержащие хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов;
циклические алгоритмы – алгоритмы, предусматривающие многократное повторение одного и того же действия (или действий) над исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов;
вс алгоритмы (процедуры) – алгоритмы, ранее разработанные и целиком используемые при алгоритмизации конкретных задач.
Рассмотрим подробнее три основных вида алгоритмов: линейный, разветвляющийся и циклический.
Линейный алгоритм. Приведём пример записи алгоритма в виде блок-схемы, в виде программы на алгоритмическом языке и на языке Паскаль.
В качестве примера рассмотрим решение задачи вычисления среднего арифметического из двух чисел, вводимых с клавиатуры (рис. 1.2).

Разветвляющийся алгоритм. В качестве примера рассмотрим алгоритм нахождения максимального из двух чисел, введённых с клавиатуры (рис. 1.3).

Рис. 1.3. Пример разветвляющегося алгоритма
Циклический алгоритм. Работу циклического алгоритма рассмотрим на примере нахождения суммы чётных чисел, находящихся в диапазоне от 0 до n (n вводится с клавиатуры) (рис. 1.4).

Рис. 1.4. Пример циклического алгоритма