Page 71 - 6105
P. 71

3,  потім  маємо  pow  (2,2)  –  підставляємо  в  крок  2  і  на  кроці  1  вже  отримуємо

               кінцевий результат.


                      Реалізація даного алгоритму на JavaScript:

                       function pow (x, n) {

                        if (n! = 1) {// поки n! = 1, зводити обчислення pow
               (x, n) до pow (x, n-1)


                          return x * pow (x, n - 1);
                        } Else {


                          return x;
                        }

                      }

                      alert (pow (2, 3)); // 8

                      В даному випадку «функція pow рекурсивно викликає сама себе» до n == 1.

               Значення,  на  якому  рекурсія  закінчується,  називають  базисом  рекурсії.  В

               наведеному  вище  прикладі  базисом  є  1.  Загальну  кількість  вкладених  викликів

               називають глибиною рекурсії. У випадку зі ступенем, всього буде n викликів.

                      Максимальна  глибина  рекурсії  в  браузерах  обмежена,  точно  можна

               розраховувати на 10000 вкладених викликів, але деякі інтерпретатори допускають

               і більше.

                      Отже, рекурсію використовують, коли обчислення функції можна звести до

               її  більш  простого  виклику,  а  його  –  ще  до  більш  простого,  і  так  далі,  поки

               значення не стане очевидне.

                      Розглянемо,  як  працюють  функції  і,  що  відбувається  при  їх  виклику.  У

               кожного виклику функції є свій «контекст виконання» (execution context).


                      Контекст  виконання  -  це  службова  інформація,  яка  відповідає  поточному
               запуску функції. Вона включає в себе локальні змінні функції і конкретне місце в


               коді, на якому знаходиться інтерпретатор.





                                                                70
   66   67   68   69   70   71   72   73   74   75   76