Dlaczego rekurencja jest tak trudna?

Dlaczego rekurencja jest tak trudna?
Dlaczego rekurencja jest tak trudna?
Anonim

Co sprawia, że rekursja jest myląca? Głównym powodem jest to, że patrzymy na tę samą funkcję z różnymi wartościami zmiennych lokalnych . Bardzo ważne jest upewnienie się, które dane wejściowe są aktualnie używane podczas analizowania funkcji rekurencyjnej funkcji rekurencyjnej Funkcje μ-rekurencyjne (lub ogólne funkcje rekurencyjne) są funkcjami częściowymi, które pobierają skończone krotki liczb naturalnych i zwracają pojedyncza liczba naturalna. Są to najmniejsza klasa funkcji częściowych, która zawiera funkcje początkowe i jest zamknięta pod składem, rekurencją pierwotną i operatorem μ. https://en.wikipedia.org › wiki › General_recursive_function

Ogólna funkcja rekurencyjna – Wikipedia

Czy trudno się nauczyć rekurencji?

Ale jest jeszcze inna bardzo potężna struktura kontrolna: rekurencja. Rekurencja jest jednym z najważniejszych pomysłów w informatyce, ale zwykle jest postrzegana jako jedna z trudniejszych do zrozumienia części programowania. Książki często wprowadzają go znacznie później niż iteracyjne struktury kontrolne.

Dlaczego rekursja nie jest dobra?

Zły. W imperatywnych językach programowania w większości przypadków należy unikać funkcji rekursywnych (proszę nie nienawidzić maili o tym, że nie jest to prawdą w 100% przypadków). Funkcje rekurencyjne są mniej wydajne niż ich iteracyjne odpowiedniki. Dodatkowo są narażone na ryzyko przepełnienia stosu.

Na czym polega problem z rekurencją?

Rekurencja jesttechnika algorytmiczna, w której funkcja, aby wykonać zadanie, wywołuje się z pewną częścią zadania. Funkcja rekurencyjna wywołuje prostszą wersję problemu, próbując uprościć problem do punktu, w którym można go rozwiązać.

Dlaczego rekurencja jest tak potężna?

Dzięki rekursji zyskujesz również dodatkową korzyść, którą inni programiści mogą łatwiej zrozumieć Twój kod – co zawsze jest dobrą rzeczą. Ściśle mówiąc, rekurencja i iteracja są równie potężne. Każde rozwiązanie rekurencyjne można zaimplementować jako rozwiązanie iteracyjne ze stosem.

Zalecana: