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.