W internecie możesz znaleźć wiele prób wyjaśnienia, na czym polega rekurencja. Klasycznym już przykładem wyjaśnienia postępowania rekurencyjnego jest to, które zaproponował Andriej P. Jerszow.
Otóż określił on czynność jedz kaszkę jako: jeśli talerz jest pusty, to zakończ jedzenie, w przeciwnym wypadku zjedz łyżkę kaszki i wróć do początku.
Z definicji wynika, że dopóki na talerzu jest kaszka, należy zjeść jej jedną łyżkę i ponownie wykonać czynność jedz kaszkę. Jeżeli na talerzu brak kaszki, to czynność jest przerywana.
Z samą rekurencją możesz się spotkać w wielu – często dość odległych – dziedzinach, np. w sztuce, architekturze, optyce czy matematyce. W informatyce używamy jej między innymi w algorytmach generowania ciągów liczb, wyszukiwania wartości, sortujących zbiory czy generowania fraktali. W tym e‑materiale omówimy definicję rekurencji oraz jej przykładowe zastosowania w informatyce.
O tym, jak zagadnienie rekurencji wyjaśnia matematyka, przeczytasz w e‑materiałach:
Ciąg określony rekurencyjnieCiąg określony rekurencyjnie,
Ciąg geometryczny określony rekurencyjnieCiąg geometryczny określony rekurencyjnie,
Wzór ogólny ciągu określonego rekurencyjnieWzór ogólny ciągu określonego rekurencyjnie,
Ciąg arytmetyczny określony wzorem rekurencyjnymCiąg arytmetyczny określony wzorem rekurencyjnym.
Zastosowanie rekurencji w poszczególnych językach programowania przedstawiamy w e‑materiałach:
Rekurencja w języku C++Rekurencja w języku C++,
Rekurencja w języku JavaRekurencja w języku Java,
Rekurencja w języku PythonRekurencja w języku Python.
Więcej zadań? Sięgnij do: Rekurencja – ćwiczeniaRekurencja – ćwiczenia, Rekurencja w zadaniachRekurencja w zadaniach.
W tym e‑materiale odwołujemy się również do informacji dotyczących ciągu Fibonacciego. Omawiamy go w następujących e‑materiałach:
Ciąg FibonacciegoCiąg Fibonacciego,
Ciąg Fibonacciego w języku C++Ciąg Fibonacciego w języku C++,
Ciąg Fibonacciego w języku JavaCiąg Fibonacciego w języku Java,
Ciąg Fibonacciego w języku PythonCiąg Fibonacciego w języku Python.
Wyjaśnisz, na czym polega rekurencja, a także podasz przykłady jej zastosowań.
Przedstawisz rekurencyjną realizację algorytmu Euklidesa, obliczania silni oraz generowania ciągu Fibonacciego.
Wyjaśnisz, czym są liczby względnie pierwsze.
Wskażesz ograniczenia, jakie wiążą się z wykorzystaniem rekurencji w programowaniu.
Wymienisz przykłady rekurencji w sztuce.