1. Funkcja A w Pythonie
Matura maj 2026 - Matura z informatyki: arkusze krok po kroku (Python)
**Zadanie 1. Rekurencja** (arkusz maj 2026). Funkcja \( A(m, n) \) z arkusza: $$ A(m, n) = \begin{cases} m & \text{gdy } n = 1 \\ A(2m, \frac{n}{2}) & \text{gdy } n > 1 \text{ i } n \text{ parzyste} \\ 2 \cdot A(m, \frac{n - 1}{2}) + m & \text{gdy } n > 1 \text{ i } n \text{ nieparzyste} \end{cases} $$ W Pythonie dzielenie całkowite to `//`, a reszta z dzielenia `%`. Lista `calls` zbiera argumenty każdego wywołania rekurencyjnego (pierwszego wywołania, z programu, nie liczy się). Arkusz podaje wiersz wzorcowy: \( A(3, 9) = 27 \), trzy wywołania: A(3, 4), A(6, 2), A(12, 1). Uruchom krokowo (przycisk **Krok**): w podglądzie widać stos wywołań i rosnącą listę `calls`.
calls = []
def A(m, n):
# funkcja A z arkusza; każde wywołanie rekurencyjne trafia na listę calls
if n == 1:
return m
if n % 2 == 0:
calls.append((2 * m, n // 2))
return A(2 * m, n // 2)
calls.append((m, (n - 1) // 2))
return 2 * A(m, (n - 1) // 2) + m
print(A(3, 9))
print(len(calls), calls)Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Matura z informatyki: arkusze krok po kroku·Zaloguj się, aby zapisać postęp na koncie.