Matura informatyka maj 2026, zadanie 1 (rekurencja) — rozwiązanie

Funkcja A(m, n) z maja 2026 to mnożenie rosyjskich chłopów. Gotowe odpowiedzi do 1.1, 1.2 i 1.3 plus wzór, który zamyka całe 1.2 bez liczenia.

Funkcja A(m, n) podwaja pierwszy argument i połowi drugi. To jest mnożenie rosyjskich chłopów, czyli A(m, n) = m · n. Kto to rozpozna, ma podpunkt 1.2 za darmo.

Arkusz CKE — maj 2026, rozszerzony

Zasada — rozpisz w dół, złóż w górę

Schodzisz po drugim argumencie aż do n = 1, notując każde wywołanie. Potem składasz wynik od dołu.

def A(m, n):
    if n == 1:
        return m
    if n % 2 == 0:
        return A(2*m, n // 2)
    else:
        return 2 * A(m, (n-1) // 2) + m

Drugi argument zawsze maleje, więc rekurencja musi dojść do 1. Wywołań jest mniej więcej log₂ n.

Zadanie 1.1 — liczba i lista wywołań

mnwywołańwywołania rekurencyjne
393A(3, 4), A(6, 2), A(12, 1)
2⁵2⁵5A(64, 16), A(128, 8), A(256, 4), A(512, 2), A(1024, 1)
10153A(10, 7), A(10, 3), A(10, 1)
12¹⁰⁰+1100

Dla (2⁵, 2⁵)n jest cały czas parzyste, od 32 do 1 to pięć połowień.

Dla (10, 15)n cały czas nieparzyste (15 → 7 → 3 → 1), więc m stoi w miejscu.

Dla (1, 2¹⁰⁰+1) — pierwszy krok nieparzysty schodzi do 2⁹⁹, potem 99 połowień. Razem 100.

Zadanie 1.2 — wartości

Skoro A(m, n) = m · n:

mnA(m, n)
1777777
2·10⁶256·10⁶512·10¹²

Zapis potęgowy jest dozwolony, nie musisz rozpisywać piętnastocyfrowej liczby.

Dlaczego to jest iloczyn: dla parzystego n zachodzi m·n = (2m)·(n/2), więc iloczyn się nie zmienia. Dla nieparzystego m·n = 2·m·(n−1)/2 + m, czyli wyciągasz jedno m i liczysz dalej. Podstawa A(m, 1) = m.

Zadanie 1.3 — wzór na drugi argument

Pierwszy argument jest tu nieistotny.

nwywołańdrugi argument w i-tym wywołaniu
832³⁻ⁱ
2ᵏk2ᵏ⁻ⁱ
2ᵏ − 1k − 12ᵏ⁻ⁱ − 1

Dla 2ᵏ to same połowienia. Dla 2ᵏ − 1 liczba jest nieparzysta, a (n−1)/2 = 2ᵏ⁻¹ − 1 — wzór odtwarza się sam i ciąg kończy się na 2¹ − 1 = 1.

Najszybsze sprawdzenie jest binarne: 2ᵏ to jedynka i k zer, połowienie ucina jedno zero. 2ᵏ − 1 to k jedynek, (n−1)/2 ucina jedną jedynkę.

Gdzie tracisz punkty

  • Off-by-one przy zliczaniu. Wywołanie z n = 1 liczy się — to ono zwraca podstawę. Nie liczysz tylko startowego A(m, n), bo pytanie dotyczy wywołań rekurencyjnych.
  • Rozwiązanie 1.2 bez śladu. Nawet jak wiesz, że to iloczyn, w 1.1 egzaminator chce widzieć rozpisane wywołania. Sam wynik to nie wszystko.
  • Zgubione środkowe zero przy dużych potęgach w 1.3.

Ten sam wzorzec w innych arkuszach

Śledzenie rekurencji — rozpisz w dół, złóż w górę — to jeden z najpewniejszych wzorców na tej maturze:

Z tego samego arkusza: zad. 2 (przeniesienia), zad. 3 (pary słów), zad. 5 (systemy liczbowe).


Takich wzorców jest kilkanaście i wracają co roku. Wszystkie rozpisane i przypisane do zadań z siedmiu arkuszy — Variant.

Wariant — kurs maturalnyKup kurs