Рекурсия
Рекурсивная функция – это такая функция, которая вызывает сама себя в момент ее создания[22]. Рекурсия – очень мощный и удобный инструмент решения задач. Так, например, один из самых быстрых алгоритмов сортировки массива использует рекурсию. Вычислить детерминант квадратной матрицы также помогает рекурсия и т.д.
Языки программирования в своем развитии обычно проходят три стадии:
1. Рекурсия невозможна.
2. Рекурсия не разрешена, но применяется по принципу: «Если нельзя, но очень хочется, то можно». Так, на старых версиях языка BASIC рекурсия реализовывалась через оператор ON N GOTO, передающий управление программой на N-ю строку.
3. Рекурсия разрешена.
Mathcad вторую стадию проскочил (условно проскочил – это мы еще отметим, разбирая рис. 6.13).
И вот уже трещат морозы
И серебрятся средь полей...
(Читатель ждет уж рифмы розы;
На вот, возьми ее скорей!)
Читатель ждет уж примеров рекурсии в среде Mathcad? Скорее всего, нет. Традиционные примеры (розы-морозы) ему оскомину набили. Но мы попробуем что-нибудь свеженькое. Например, двустороннюю (ретроспективную) рекурсию.
Как запомнить число e (основание натурального логарифма) с девятью цифрами после запятой? Очень просто – две целых семь десятых плюс два раза Лев Толстой – 2.718281828, то есть к числу 2.7 нужно приписать два раза год рождения классика (1828). Остается самая малость – запомнить, в каком году родился Лев Толстой, или, на худой конец, сообразить, что это случилось в прошлом веке[23], чтобы вспомнить хотя бы три знака числа e после запятой: 2.718. Ретроспектива, обращенная в XIX век, поможет запомнить довольно-таки точное значение одной из фундаментальных констант математики.
Как запомнить, что факториал нуля равен не нулю (типичная ошибка), а единице? Очень просто. Нужно применить ретроспективный метод поиска факториала числа: сообщить машине факториал какого-либо положительного числа N (5! = 120, например) и то, что факториал предыдущего числа N-1 равен факториалу первого (N!), разделенному на N. Факториал пяти (120) – это такая же тривиальная истина, как и то, что Лев Толстой родился в XIX веке, а грубая оценка числа е – 2.7.