← Все вопросы

Какие бывают свойства алгоритма и зачем их вообще учить?

Задан 7 месяцев назад903 просмотров2 ответа
6

В учебнике написано, что у алгоритма есть какие-то свойства: дискретность, понятность, результативность и ещё пара. Я их зазубрил, но не понимаю, зачем они нужны и что они значат на практике. Можете объяснить по-человечески, с примером?

2 ответа

11
✓ Принятый ответ — помог автору

Эти свойства — просто список требований, которым должна отвечать любая нормальная инструкция, чтобы её можно было выполнить «не думая». Разберём на рецепте блинов:

  • Дискретность — алгоритм разбит на отдельные шаги (разбить яйцо, добавить муку...), а не «сделай блины как-нибудь».
  • Понятность — каждый шаг исполнителю по силам. Роботу нельзя сказать «посоли по вкусу», а человеку можно.
  • Определённость (детерминированность) — на одном и том же входе всегда один и тот же результат, без «как повезёт».
  • Результативность (конечность) — алгоритм заканчивается за конечное число шагов и выдаёт ответ.
  • Массовость — работает не для одного набора данных, а для целого класса задач (рецепт годится для любого количества блинов).

Их учат, потому что если хоть одно свойство нарушено — алгоритм либо зависнет, либо даст разный ответ, либо исполнитель его не поймёт. На ОГЭ/ЕГЭ за определение тоже могут спросить.

4

Маленькая подсказка для экзамена: чаще всего путают результативность (есть конечный результат) и конечность/дискретность. Если алгоритм может зациклиться навсегда (бесконечный while True без выхода) — нарушена именно результативность.

Ваш ответ

Войдите, чтобы ответить на вопрос.