{"id":"informatyka-2019-maj-matura-rozszerzona/zad/2.3","paper_id":"informatyka-2019-maj-matura-rozszerzona","number":"2.3","points":2,"ptype":"open","subject":"informatyka","category":"matura","year":2019,"month":"maj","level":"rozszerzona","text":"Zadanie 2.3. (0-2)\nPodaj wzór na łączną liczbę wywołań funkcji pisz w wyniku wywołania pisz(\"\", n, k).\nWypełnia\negzaminator\nNr zadania\n2.1.\n2.2.\n2.3.\nMaks. liczba pkt.\n2\n2\n2\nUzyskana liczba pkt.\nMIN_1R","answer":null,"answer_text":"Zadanie 2.3. (0-2)\nWymagania ogólne\nWymagania szczegółowe\nIII. Rozwiązywanie problemów\ni podejmowanie decyzji […]\nz zastosowaniem podejścia algorytmicznego.\n5. Rozwiązywanie problemów\ni podejmowanie decyzji […], stosowanie\npodejścia algorytmicznego.\nZdający:\n5) posługuje się podstawowymi technikami\nalgorytmicznymi;\n9) stosuje rekurencję w prostych sytuacjach\nproblemowych;\n16) opisuje własności algorytmów na\npodstawie ich analizy;\n17) ocenia zgodność algorytmu ze\nspecyfikacją problemu;\n18) oblicza liczbę operacji wykonywanych\nprzez algorytm.\nSchemat punktowania\n2 p. - za poprawną odpowiedź,\n1 p. - w przypadku podania w odpowiedzi liczby mniejszej o 1 lub gdy ostatni element szeregu\nw odpowiedzi ma indeks n-1 zamiast n (np. 1+k+k2+…+kn-1 zamiast 1+k+k2+…+kn),\n0 p. - za podanie odpowiedzi błędnej albo brak odpowiedzi.\nUwaga: odpowiedź może być zapisana także w postaci sumy (ze znakiem ∑ ).\nPoprawna odpowiedź\n(kn+1 - 1)/(k - 1) lub (1 - kn+1)/(1- k) lub 1 + k + k2 + … + kn","solution":"## Poprawna odpowiedź\n\n**Wzór na łączną liczbę wywołań:**\n\n$$\nT(n, k) = 1 + k + k^2 + k^3 + \\ldots + k^n = \\frac{k^{n+1} - 1}{k - 1}\n$$\n\n(dla k = 1 wzór ten się degeneruje; wtedy T(n, 1) = n + 1.)\n\nAlternatywne równoważne zapisy:\n- `(k^(n+1) - 1) / (k - 1)`\n- `(1 - k^(n+1)) / (1 - k)`\n- `1 + k + k^2 + + k^n`\n- `Σ k^i dla i = 0 n`\n\n## Sposób 1 - analiza poziomami drzewa\n\nFunkcja `pisz(\"\", n, k)` buduje **pełne drzewo k-arne głębokości n**. Każde wywołanie na poziomie i (gdzie i = 0, 1, , n) odpowiada jednemu napisowi długości i.\n\n**Liczba wywołań na poziomie i = k^i** (liczba ciągów długości i nad alfabetem k-elementowym):\n\n| Poziom | Liczba wywołań |\n| 0 (korzeń) | k⁰ = 1 |\n| 1 | k¹ = k |\n| 2 | k² |\n| n (liście) | kⁿ |\n\n**Suma wszystkich poziomów:**\n\n$$T(n,k) = \\sum_{i=0}^{n} k^i = 1 + k + k^2 + \\ldots + k^n$$\n\n## Sposób 2 - wzór sumy szeregu geometrycznego\n\nZastosujmy wzór na sumę szeregu geometrycznego z pierwszym wyrazem a=1 i ilorazem q=k:\n\n$$S_n = a \\cdot \\frac{q^{n+1} - 1}{q - 1} = \\frac{k^{n+1} - 1}{k - 1}, \\quad k \\ne 1$$\n\n**Weryfikacja na danych z zadania 2.2:**\n- pisz(\"\", 3, 2): (2⁴ - 1)/(2 - 1) = 15 ✓\n- pisz(\"\", 2, 3): (3³ - 1)/(3 - 1) = 26/2 = 13 ✓\n- pisz(\"\", 2, 2): (2³ - 1)/(2 - 1) = 7 ✓ (z zad. 2.1)\n\n## Sposób 3 - wzór rekurencyjny i jego rozwinięcie\n\nNiech T(n, k) = liczba wywołań pisz(s, n, k), gdzie dł(s) = 0 (lub równoważnie pisz(s, n-dł(s), k) dla dowolnego s).\n\n**Rekurencja:**\n- Bazowo: T(0, k) = 1 (tylko jedno wywołanie - od razu wypisuje).\n- Ogólnie: T(n, k) = 1 (samo wywołanie) + k razy poddrzewa: T(n, k) = 1 + k · T(n-1, k).\n\nRozwiązanie:\n- T(0, k) = 1\n- T(1, k) = 1 + k\n- T(2, k) = 1 + k(1 + k) = 1 + k + k²\n- T(n, k) = 1 + k + k² + + kⁿ ✓\n\n## Reference informatyczny - suma szeregu geometrycznego\n\n> Reference - Szereg geometryczny:\n> - Suma: 1 + q + q² + + qⁿ = **(qⁿ⁺¹ - 1) / (q - 1)** dla q ≠ 1.\n> - Dla q = 1: suma = n + 1.\n> - Liczba węzłów pełnego drzewa k-arnego głębokości n: **(kⁿ⁺¹ - 1) / (k - 1)**.\n> - Liczba liści: **kⁿ**.\n> - Liczba węzłów wewnętrznych: T(n,k) - kⁿ = (kⁿ - 1) / (k - 1).\n\n## Schemat oceniania CKE\n\n> Klucz CKE (zadanie 2.3, max 2 pkt):\n> - **2 pkt** - pełna poprawna odpowiedź (dowolna z równoważnych form)\n> - **1 pkt** - liczba mniejsza o 1 lub indeks szeregu n-1 zamiast n (np. 1+k+ +k^(n-1) zamiast 1+k+ +kⁿ)\n> - **0 pkt** - błędna lub brak\n>\n> Uwaga: odpowiedź może być zapisana także w postaci sumy ze znakiem Σ.\n\n## Typowe pułapki\n\n- **Liczenie tylko liści (kⁿ) zamiast wszystkich wywołań** - typowy błąd: \"funkcja wypisuje kⁿ napisów więc tyle jest wywołań\".\n- **Pomylenie n+1 i n w wykładniku**: 1+k+ +k^(n-1) (suma do n-1) zamiast do kⁿ.\n- **Dzielenie przez (k-1) i zapominanie o przypadku k=1** (chociaż w treści mamy k ∈ [2 10], więc k ≥ 2).\n- **Mylenie głębokości drzewa**: drzewo ma głębokość n, ale jego poziomy są ponumerowane 0, 1, , n - czyli n+1 poziomów.\n\n## Złożoność obliczeniowa\n\n- T(n, k) = **Θ(kⁿ)** - dominujący człon w sumie geometrycznej.\n- Dla k=2: T(n,2) = 2ⁿ⁺¹ - 1 - wykładnicza w n.\n- Pamięć stosu rekurencji: O(n).","image":"img/informatyka-2019-maj-matura-rozszerzona/zad-2.3.webp","solution_image":null,"topics":null,"page_from":5,"source":"ocr","answer_source":null,"answer_text_source":"ocr","solution_source":"maturazai","text_source":"ocr","source_label":"Informatyka · Matura · maj 2019 (rozszerzona)","subject_label":"Informatyka","category_label":"Matura","text_html":"<p>Zadanie 2.3. (0-2)<br>Podaj wzór na łączną liczbę wywołań funkcji pisz w wyniku wywołania pisz(&quot;&quot;, n, k).<br>Wypełnia<br>egzaminator<br>Nr zadania<br>2.1.<br>2.2.<br>2.3.<br>Maks. liczba pkt.<br>2<br>2<br>2<br>Uzyskana liczba pkt.<br>MIN_1R</p>","answer_text_html":"<p>Zadanie 2.3. (0-2)<br>Wymagania ogólne<br>Wymagania szczegółowe<br>III. Rozwiązywanie problemów<br>i podejmowanie decyzji […]<br>z zastosowaniem podejścia algorytmicznego.</p>\n<ol><li>Rozwiązywanie problemów</li></ol>\n<p>i podejmowanie decyzji […], stosowanie<br>podejścia algorytmicznego.<br>Zdający:</p>\n<ol><li>posługuje się podstawowymi technikami</li></ol>\n<p>algorytmicznymi;</p>\n<ol><li>stosuje rekurencję w prostych sytuacjach</li></ol>\n<p>problemowych;</p>\n<ol><li>opisuje własności algorytmów na</li></ol>\n<p>podstawie ich analizy;</p>\n<ol><li>ocenia zgodność algorytmu ze</li></ol>\n<p>specyfikacją problemu;</p>\n<ol><li>oblicza liczbę operacji wykonywanych</li></ol>\n<p>przez algorytm.<br>Schemat punktowania<br>2 p. - za poprawną odpowiedź,<br>1 p. - w przypadku podania w odpowiedzi liczby mniejszej o 1 lub gdy ostatni element szeregu<br>w odpowiedzi ma indeks n-1 zamiast n (np. 1+k+k2+…+kn-1 zamiast 1+k+k2+…+kn),<br>0 p. - za podanie odpowiedzi błędnej albo brak odpowiedzi.<br>Uwaga: odpowiedź może być zapisana także w postaci sumy (ze znakiem ∑ ).<br>Poprawna odpowiedź<br>(kn+1 - 1)/(k - 1) lub (1 - kn+1)/(1- k) lub 1 + k + k2 + … + kn</p>","solutions":[{"source":"maturazai","label":"maturazai.pl (AI)","kind":"text","html":"<h4>Poprawna odpowiedź</h4>\n<p><strong>Wzór na łączną liczbę wywołań:</strong></p>\n<div class=\"math-block\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><mrow><mi>T</mi><mo stretchy=\"false\">&#x00028;</mo><mi>n</mi><mo>&#x0002C;</mo><mi>k</mi><mo stretchy=\"false\">&#x00029;</mo><mo>&#x0003D;</mo><mn>1</mn><mo>&#x0002B;</mo><mi>k</mi><mo>&#x0002B;</mo><msup><mi>k</mi><mn>2</mn></msup><mo>&#x0002B;</mo><msup><mi>k</mi><mn>3</mn></msup><mo>&#x0002B;</mo><mi>&#x02026;</mi><mo>&#x0002B;</mo><msup><mi>k</mi><mi>n</mi></msup><mo>&#x0003D;</mo><mfrac><mrow><msup><mi>k</mi><mrow><mi>n</mi><mo>&#x0002B;</mo><mn>1</mn></mrow></msup><mo>&#x02212;</mo><mn>1</mn></mrow><mrow><mi>k</mi><mo>&#x02212;</mo><mn>1</mn></mrow></mfrac></mrow></math></div>\n<p>(dla k = 1 wzór ten się degeneruje; wtedy T(n, 1) = n + 1.)</p>\n<p>Alternatywne równoważne zapisy:</p>\n<ul><li><code>(k^(n+1) - 1) / (k - 1)</code></li><li><code>(1 - k^(n+1)) / (1 - k)</code></li><li><code>1 + k + k^2 + + k^n</code></li><li><code>Σ k^i dla i = 0 n</code></li></ul>\n<h4>Sposób 1 - analiza poziomami drzewa</h4>\n<p>Funkcja <code>pisz(&quot;&quot;, n, k)</code> buduje <strong>pełne drzewo k-arne głębokości n</strong>. Każde wywołanie na poziomie i (gdzie i = 0, 1, , n) odpowiada jednemu napisowi długości i.</p>\n<p><strong>Liczba wywołań na poziomie i = k^i</strong> (liczba ciągów długości i nad alfabetem k-elementowym):</p>\n<p>| Poziom | Liczba wywołań |<br>| 0 (korzeń) | k⁰ = 1 |<br>| 1 | k¹ = k |<br>| 2 | k² |<br>| n (liście) | kⁿ |</p>\n<p><strong>Suma wszystkich poziomów:</strong></p>\n<div class=\"math-block\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><mrow><mi>T</mi><mo stretchy=\"false\">&#x00028;</mo><mi>n</mi><mo>&#x0002C;</mo><mi>k</mi><mo stretchy=\"false\">&#x00029;</mo><mo>&#x0003D;</mo><munderover><mo>&#x02211;</mo><mrow><mi>i</mi><mo>&#x0003D;</mo><mn>0</mn></mrow><mrow><mi>n</mi></mrow></munderover><msup><mi>k</mi><mi>i</mi></msup><mo>&#x0003D;</mo><mn>1</mn><mo>&#x0002B;</mo><mi>k</mi><mo>&#x0002B;</mo><msup><mi>k</mi><mn>2</mn></msup><mo>&#x0002B;</mo><mi>&#x02026;</mi><mo>&#x0002B;</mo><msup><mi>k</mi><mi>n</mi></msup></mrow></math></div>\n<h4>Sposób 2 - wzór sumy szeregu geometrycznego</h4>\n<p>Zastosujmy wzór na sumę szeregu geometrycznego z pierwszym wyrazem a=1 i ilorazem q=k:</p>\n<div class=\"math-block\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><mrow><msub><mi>S</mi><mi>n</mi></msub><mo>&#x0003D;</mo><mi>a</mi><mo>&#x000B7;</mo><mfrac><mrow><msup><mi>q</mi><mrow><mi>n</mi><mo>&#x0002B;</mo><mn>1</mn></mrow></msup><mo>&#x02212;</mo><mn>1</mn></mrow><mrow><mi>q</mi><mo>&#x02212;</mo><mn>1</mn></mrow></mfrac><mo>&#x0003D;</mo><mfrac><mrow><msup><mi>k</mi><mrow><mi>n</mi><mo>&#x0002B;</mo><mn>1</mn></mrow></msup><mo>&#x02212;</mo><mn>1</mn></mrow><mrow><mi>k</mi><mo>&#x02212;</mo><mn>1</mn></mrow></mfrac><mo>&#x0002C;</mo><mspace width=\"1em\" /><mi>k</mi><mo>&#x02260;</mo><mn>1</mn></mrow></math></div>\n<p><strong>Weryfikacja na danych z zadania 2.2:</strong></p>\n<ul><li>pisz(&quot;&quot;, 3, 2): (2⁴ - 1)/(2 - 1) = 15 ✓</li><li>pisz(&quot;&quot;, 2, 3): (3³ - 1)/(3 - 1) = 26/2 = 13 ✓</li><li>pisz(&quot;&quot;, 2, 2): (2³ - 1)/(2 - 1) = 7 ✓ (z zad. 2.1)</li></ul>\n<h4>Sposób 3 - wzór rekurencyjny i jego rozwinięcie</h4>\n<p>Niech T(n, k) = liczba wywołań pisz(s, n, k), gdzie dł(s) = 0 (lub równoważnie pisz(s, n-dł(s), k) dla dowolnego s).</p>\n<p><strong>Rekurencja:</strong></p>\n<ul><li>Bazowo: T(0, k) = 1 (tylko jedno wywołanie - od razu wypisuje).</li><li>Ogólnie: T(n, k) = 1 (samo wywołanie) + k razy poddrzewa: T(n, k) = 1 + k · T(n-1, k).</li></ul>\n<p>Rozwiązanie:</p>\n<ul><li>T(0, k) = 1</li><li>T(1, k) = 1 + k</li><li>T(2, k) = 1 + k(1 + k) = 1 + k + k²</li><li>T(n, k) = 1 + k + k² + + kⁿ ✓</li></ul>\n<h4>Reference informatyczny - suma szeregu geometrycznego</h4>\n<blockquote>Reference - Szereg geometryczny:<br>- Suma: 1 + q + q² + + qⁿ = <strong>(qⁿ⁺¹ - 1) / (q - 1)</strong> dla q ≠ 1.<br>- Dla q = 1: suma = n + 1.<br>- Liczba węzłów pełnego drzewa k-arnego głębokości n: <strong>(kⁿ⁺¹ - 1) / (k - 1)</strong>.<br>- Liczba liści: <strong>kⁿ</strong>.<br>- Liczba węzłów wewnętrznych: T(n,k) - kⁿ = (kⁿ - 1) / (k - 1).</blockquote>\n<h4>Schemat oceniania CKE</h4>\n<blockquote>Klucz CKE (zadanie 2.3, max 2 pkt):<br>- <strong>2 pkt</strong> - pełna poprawna odpowiedź (dowolna z równoważnych form)<br>- <strong>1 pkt</strong> - liczba mniejsza o 1 lub indeks szeregu n-1 zamiast n (np. 1+k+ +k^(n-1) zamiast 1+k+ +kⁿ)<br>- <strong>0 pkt</strong> - błędna lub brak<br><br>Uwaga: odpowiedź może być zapisana także w postaci sumy ze znakiem Σ.</blockquote>\n<h4>Typowe pułapki</h4>\n<ul><li><strong>Liczenie tylko liści (kⁿ) zamiast wszystkich wywołań</strong> - typowy błąd: &quot;funkcja wypisuje kⁿ napisów więc tyle jest wywołań&quot;.</li><li><strong>Pomylenie n+1 i n w wykładniku</strong>: 1+k+ +k^(n-1) (suma do n-1) zamiast do kⁿ.</li><li><strong>Dzielenie przez (k-1) i zapominanie o przypadku k=1</strong> (chociaż w treści mamy k ∈ [2 10], więc k ≥ 2).</li><li><strong>Mylenie głębokości drzewa</strong>: drzewo ma głębokość n, ale jego poziomy są ponumerowane 0, 1, , n - czyli n+1 poziomów.</li></ul>\n<h4>Złożoność obliczeniowa</h4>\n<ul><li>T(n, k) = <strong>Θ(kⁿ)</strong> - dominujący człon w sumie geometrycznej.</li><li>Dla k=2: T(n,2) = 2ⁿ⁺¹ - 1 - wykładnicza w n.</li><li>Pamięć stosu rekurencji: O(n).</li></ul>"}]}