Przeczytaj
Rekurencja to technika rozwiązywania problemów, będąca alternatywą dla metody iteracyjnej. W podejściu rekurencyjnym funkcja rozwiązująca problem wywołuje samą siebie, aż do napotkania tzw. przypadku podstawowegoprzypadku podstawowego.
Przykładowe zadania maturalne
Zadanie 1
Oceń, czy przedstawione zdania są prawdziwe. Zaznacz P, jeśli zdanie jest prawdziwe, albo F – jeśli zdanie jest fałszywe.
Zadanie 1.1
Dana jest funkcja określona wzorem rekurencyjnym:
Wtedy:
L.p | Funkcja | Czy prawda | Czy fałsz |
---|---|---|---|
1. | P | F | |
2. | P | F | |
3. | P | F | |
4. | P | F |
Zadanie zostało opracowane przez Centralną Komisję Egzaminacyjną i pojawiło się na egzaminie maturalnym z informatyki w 2016 roku (poziom rozszerzony, egzamin w tzw. starej formule). Cały arkusz można znaleźć na stronie internetowej CKE.
Przykładowe rozwiązanie
To zadanie sprawdza umiejętności czytania i rozumienia algorytmów rekurencyjnych. Przypadkiem podstawowym jest tu wartość x = 1, dla której funkcja zwraca wartość 4.
Przeanalizujmy działanie tego algorytmu dla każdego z czterech przypadków.
Przypadek 1:
Otrzymany wynik jest inny niż podany, więc odpowiedzią jest F
.
Przypadek 2:
Otrzymany wynik jest taki sam jak podany, więc odpowiedzią jest P
.
Przypadek 3:
Otrzymany wynik jest taki sam jak podany, więc odpowiedzią jest P
.
Przypadek 4:
Tego przykładu nie będziemy rozpisywać. Jest on zbyt obszerny, a rozwiązanie można podać o wiele szybciej. Zauważmy bowiem, że w wynikach powtarza się pewien schemat występowania liczb. Pierwszym wynikiem (dla ) jest , drugim , trzecim , a czwartym ponownie . Dla kolejnych wyników występuje ten sam schemat – każda wartość powtarza się co 3 wyniki.
Obliczmy zatem wartość . Pierwszym wynikiem jest liczba 4. Powtarza się ona co 3, więc taki wynik będzie kolejno dla , ,
Dochodzimy w ten sposób do funkcji , której wartość jest równa 4.
Otrzymany wynik jest inny niż podany, więc odpowiedzią jest F
.
Drugi sposób: wystarczy obliczyć resztę z dzielenia . W omawianym przypadku , wynik dzielenia z resztą to czyli .
Schemat oceniania
I. Wiadomości i rozumienie | Zdający zna techniki algorytmiczne (rekurencja) |
Schemat punktowania
1 pkt – za wszystkie cztery poprawne odpowiedzi
0 pkt – za odpowiedź niepełną lub błędną albo brak odpowiedzi
Poprawna odpowiedź
F, P, P, F
Schemat oceniania pochodzi z arkusza odpowiedzi wykorzystywanego podczas egzaminu maturalnego z informatyki w 2016 roku (na poziomie rozszerzonym). Cały arkusz można znaleźć na stronie internetowej Centralnej Komisji Egzaminacyjnej.
Napisz implementację omówionej funkcji rekurencyjnejfunkcji rekurencyjnej w wybranym języku programowania.
Zadanie 2. Długość napisów binarnych (7 pkt.)
Treść zadania
Opisana poniżej funkcja rekurencyjna wyznacza dla liczby naturalnej długość napisu uzyskanego przez sklejenie binarnych reprezentacji liczb naturalnych od do .
Funkcja
Krok 1. Jeśli , to podaj jako wynik i zakończ działanie.
Krok 2. Jeśli parzysta, to wynikiem jest .
Krok 3. Jeśli jest nieparzysta, to wynikiem jest .
b) Uzupełnij tabelę, podając wartości funkcji sklej
dla wskazanych argumentów.
|
|
---|---|
1 | 0 |
2 | 1 |
3 | |
4 | |
5 | |
6 |
Zadanie zostało opracowane przez Centralną Komisję Egzaminacyjną i pojawiło się na egzaminie maturalnym z informatyki w 2011 roku (poziom rozszerzony). Cały arkusz można znaleźć na stronie internetowej CKE.
Rozwiązanie podpunktu a) tego zadania zostało omówione w sekcji „Prezentacja multimedialna”.
Przykładowe rozwiązanie:
Obliczmy kolejne wartości podane w tabeli.
Schemat oceniania
Korzystanie z informacji | Obliczenie kolejnych wartości funkcji dla wskazanych argumentów |
Poprawna odpowiedź
|
|
---|---|
1 | 0 |
2 | 1 |
3 | 3 |
4 | 5 |
5 | 8 |
6 | 11 |
2 pkt – za poprawne uzupełnienie wartości funkcji w tabeli
1 pkt – za uzupełnienie wartości funkcji w tabeli z jednym błędem
0 pkt – za wypełnioną tabelę z więcej niż jednym błędem albo brak odpowiedzi
Schemat oceniania pochodzi z arkusza odpowiedzi wykorzystywanego podczas egzaminu maturalnego z informatyki w 2011 roku (na poziomie rozszerzonym). Cały arkusz można znaleźć na stronie internetowej Centralnej Komisji Egzaminacyjnej.
Zwróćmy uwagę na schemat oceniania w tym zadaniu. Za prawidłowo wypełnioną tabelę uzyskamy 2 punkty. Gdy jedna z wartości będzie błędna, otrzymamy 1 punkt. Z tego powodu zawsze warto sprawdzić poprawność otrzymywanych wyników.
Słownik
funkcja odwołująca się do samej siebie w celu rozwiązania problemu aż do napotkania przypadku podstawowego
przypadek, w którym funkcja rekurencyjna zwraca konkretną wartość, a nie wywołanie samej siebie