{"id":"informatyka-2016-maj-matura-rozszerzona/zad/3.2","paper_id":"informatyka-2016-maj-matura-rozszerzona","number":"3.2","points":1,"ptype":"true_false","subject":"informatyka","category":"matura","year":2016,"month":"maj","level":"rozszerzona","text":"Zadanie 3.2. (0-1)\nDana jest funkcja f określona wzorem rekurencyjnym\n( )\n(\n)\n( )\n1\n4\n1\n1\ndla\n1\n1\nf\nf n\nn\nf n\n\n\n≥\n\n\nWtedy:\n1.\n( )\n1\n8\n3\nf\nP\nF\n2.\n( )\n3\n9\n4\nf\nP\nF\n3.\n(\n)\n10\n4\nf\nP\nF\n4.\n(\n)\n1\n100\n3\nf\nP\nF\nMiejsce na obliczenia.\nMIN_1R","answer":null,"answer_text":"Zadanie 3.2. (0-1)\nIII. Rozwiązywanie problemów i\npodejmowanie decyzji […], z zastosowaniem\npodejścia algorytmicznego.\n5. Rozwiązywanie problemów i podejmowanie\ndecyzji […], stosowanie podejścia algorytmicznego.\nZdający:\n9) stosuje rekurencję w prostych sytuacjach\nproblemowych.\nSchemat punktowania\n1 p. - za wskazanie czterech poprawnych odpowiedzi.\n0 p. - za odpowiedź niepełną lub błędną albo za brak odpowiedzi.\nPoprawna odpowiedź\nF, P, P, F.","solution":"## Poprawna odpowiedź\n\n**1) F, 2) P, 3) P, 4) F**\n\n## Sposób 1 - wyznaczenie cyklu funkcji\n\n**Obliczamy kolejne wartości:**\n\n- f(1) = **4**\n- f(2) = 1 / (1 - 4) = 1 / (-3) = **-1/3**\n- f(3) = 1 / (1 - (-1/3)) = 1 / (4/3) = **3/4**\n- f(4) = 1 / (1 - 3/4) = 1 / (1/4) = **4** ← powtarza się f(1)\n- f(5) = f(2) = -1/3\n- f(6) = f(3) = 3/4\n- f(7) = f(4) = 4\n\n**Funkcja jest cykliczna z okresem 3!** Wartość f(n) zależy tylko od `(n - 1) mod 3`:\n- `(n - 1) mod 3 = 0` → f(n) = **4**\n- `(n - 1) mod 3 = 1` → f(n) = **-1/3**\n- `(n - 1) mod 3 = 2` → f(n) = **3/4**\n\n## Sposób 2 - sprawdzenie poszczególnych stwierdzeń\n\n### f(8) = 1/3?\n(8 - 1) mod 3 = 7 mod 3 = 1 → f(8) = **-1/3**, NIE 1/3.\n**→ F (Fałsz).** Wartość to -1/3, nie +1/3 (uwaga na znak!).\n\n### f(9) = 3/4?\n(9 - 1) mod 3 = 8 mod 3 = 2 → f(9) = **3/4**. ✓\n**→ P (Prawda).**\n\n### f(10) = 4?\n(10 - 1) mod 3 = 9 mod 3 = 0 → f(10) = **4**. ✓\n**→ P (Prawda).**\n\n### f(100) = -1/3?\n(100 - 1) mod 3 = 99 mod 3 = 0 → f(100) = **4**, NIE -1/3.\n**→ F (Fałsz).**\n\n## Sposób 3 - implementacja Python (weryfikacja)\n\n```python\nfrom fractions import Fraction\n\ndef f(n):\nval = Fraction(4)\nfor _ in range(n - 1):\nval = Fraction(1) / (Fraction(1) - val)\nreturn val\n\nfor n in [1, 2, 3, 4, 8, 9, 10, 100]:\nprint(f\"f({n}) = {f(n)}\")\n\nWynik:\nf(1) = 4\nf(2) = -1/3\nf(3) = 3/4\nf(4) = 4\nf(8) = -1/3\nf(9) = 3/4\nf(10) = 4\nf(100) = 4\n\n## Reference informatyczny - rekurencja cykliczna\n\n> Reference - Funkcje cykliczne:\n> - Jeżeli ciąg rekurencyjny `a_{n+1} = g(a_n)` powraca do wartości startowej po k krokach (`a_{1+k} = a_1`), to ma **okres k**.\n> - Wtedy `a_n` zależy tylko od `(n - 1) mod k`.\n> - W tym zadaniu k = 3; cykl to (4, -1/3, 3/4, 4, -1/3, 3/4, ).\n>\n> Reference - Iterowane przekształcenia ułamkowe (Möbius transformations):\n> - Funkcja `g(x) = 1/(1-x)` to przekształcenie Möbiusa z okresem 3 (działa to dla bardzo wielu wartości startowych).\n> - Cyklem 3-elementowym tej funkcji są: x, 1/(1-x), (x-1)/x. Dla x=4 daje to dokładnie 4 → -1/3 → 3/4 → 4.\n\n## Schemat oceniania CKE\n\n> Klucz CKE (zadanie 3.2, max 1 pkt):\n> - **1 pkt** - wszystkie 4 odpowiedzi poprawne: F, P, P, F\n> - **0 pkt** - odpowiedź niepełna lub błędna\n\n## Typowe pułapki\n\n- **Pominięcie znaku minus** - f(8) = -1/3, a stwierdzenie mówi +1/3. Łatwo przeoczyć.\n- **Zła wartość mod dla 99** - niektórzy uczniowie zakładają `99 mod 3 ≠ 0`, ale 99 = 33·3, więc 99 mod 3 = **0**.\n- **Liczenie ręcznie do f(100)** zamiast skorzystać z okresu - strata czasu i ryzyko błędu rachunkowego.\n- **Mylenie `n` z `(n-1)`** w wyznaczaniu pozycji w cyklu - formula używa **(n-1) mod 3** bo f(1) startuje cykl.\n- **Niesprawdzenie cyklu** - niektórzy uczniowie obliczają f(8) krok po kroku, zamiast zauważyć powtarzanie po 3 iteracjach.\n\n## Złożoność obliczeniowa\n\n- Naiwne wyznaczanie f(n): O(n) iteracji.\n- Z wykorzystaniem cyklu: **O(1)** po wykryciu okresu.","image":"img/informatyka-2016-maj-matura-rozszerzona/zad-3.2.webp","solution_image":null,"topics":null,"page_from":6,"source":"ocr","answer_source":null,"answer_text_source":"ocr","solution_source":"maturazai","text_source":"ocr","source_label":"Informatyka · Matura · maj 2016 (rozszerzona)","subject_label":"Informatyka","category_label":"Matura","text_html":"<p>Zadanie 3.2. (0-1)<br>Dana jest funkcja f określona wzorem rekurencyjnym<br>( )<br>(<br>)<br>( )<br>1<br>4<br>1<br>1<br>dla<br>1<br>1<br>f<br>f n<br>n<br>f n<br><br><br>≥<br><br><br>Wtedy:<br>1.<br>( )<br>1<br>8<br>3<br>f<br>P<br>F<br>2.<br>( )<br>3<br>9<br>4<br>f<br>P<br>F<br>3.<br>(<br>)<br>10<br>4<br>f<br>P<br>F<br>4.<br>(<br>)<br>1<br>100<br>3<br>f<br>P<br>F<br>Miejsce na obliczenia.<br>MIN_1R</p>","answer_text_html":"<p>Zadanie 3.2. (0-1)<br>III. Rozwiązywanie problemów i<br>podejmowanie decyzji […], z zastosowaniem<br>podejścia algorytmicznego.</p>\n<ol><li>Rozwiązywanie problemów i podejmowanie</li></ol>\n<p>decyzji […], stosowanie podejścia algorytmicznego.<br>Zdający:</p>\n<ol><li>stosuje rekurencję w prostych sytuacjach</li></ol>\n<p>problemowych.<br>Schemat punktowania<br>1 p. - za wskazanie czterech poprawnych odpowiedzi.<br>0 p. - za odpowiedź niepełną lub błędną albo za brak odpowiedzi.<br>Poprawna odpowiedź<br>F, P, P, F.</p>","solutions":[{"source":"maturazai","label":"maturazai.pl (AI)","kind":"text","html":"<h4>Poprawna odpowiedź</h4>\n<p><strong>1) F, 2) P, 3) P, 4) F</strong></p>\n<h4>Sposób 1 - wyznaczenie cyklu funkcji</h4>\n<p><strong>Obliczamy kolejne wartości:</strong></p>\n<ul><li>f(1) = <strong>4</strong></li><li>f(2) = 1 / (1 - 4) = 1 / (-3) = <strong>-1/3</strong></li><li>f(3) = 1 / (1 - (-1/3)) = 1 / (4/3) = <strong>3/4</strong></li><li>f(4) = 1 / (1 - 3/4) = 1 / (1/4) = <strong>4</strong> ← powtarza się f(1)</li><li>f(5) = f(2) = -1/3</li><li>f(6) = f(3) = 3/4</li><li>f(7) = f(4) = 4</li></ul>\n<p><strong>Funkcja jest cykliczna z okresem 3!</strong> Wartość f(n) zależy tylko od <code>(n - 1) mod 3</code>:</p>\n<ul><li><code>(n - 1) mod 3 = 0</code> → f(n) = <strong>4</strong></li><li><code>(n - 1) mod 3 = 1</code> → f(n) = <strong>-1/3</strong></li><li><code>(n - 1) mod 3 = 2</code> → f(n) = <strong>3/4</strong></li></ul>\n<h4>Sposób 2 - sprawdzenie poszczególnych stwierdzeń</h4>\n<h5>f(8) = 1/3?</h5>\n<p>(8 - 1) mod 3 = 7 mod 3 = 1 → f(8) = <strong>-1/3</strong>, NIE 1/3.<br><strong>→ F (Fałsz).</strong> Wartość to -1/3, nie +1/3 (uwaga na znak!).</p>\n<h5>f(9) = 3/4?</h5>\n<p>(9 - 1) mod 3 = 8 mod 3 = 2 → f(9) = <strong>3/4</strong>. ✓<br><strong>→ P (Prawda).</strong></p>\n<h5>f(10) = 4?</h5>\n<p>(10 - 1) mod 3 = 9 mod 3 = 0 → f(10) = <strong>4</strong>. ✓<br><strong>→ P (Prawda).</strong></p>\n<h5>f(100) = -1/3?</h5>\n<p>(100 - 1) mod 3 = 99 mod 3 = 0 → f(100) = <strong>4</strong>, NIE -1/3.<br><strong>→ F (Fałsz).</strong></p>\n<h4>Sposób 3 - implementacja Python (weryfikacja)</h4>\n<p>```python<br>from fractions import Fraction</p>\n<p>def f(n):<br>val = Fraction(4)<br>for _ in range(n - 1):<br>val = Fraction(1) / (Fraction(1) - val)<br>return val</p>\n<p>for n in [1, 2, 3, 4, 8, 9, 10, 100]:<br>print(f&quot;f({n}) = {f(n)}&quot;)</p>\n<p>Wynik:<br>f(1) = 4<br>f(2) = -1/3<br>f(3) = 3/4<br>f(4) = 4<br>f(8) = -1/3<br>f(9) = 3/4<br>f(10) = 4<br>f(100) = 4</p>\n<h4>Reference informatyczny - rekurencja cykliczna</h4>\n<blockquote>Reference - Funkcje cykliczne:<br>- Jeżeli ciąg rekurencyjny <code>a_{n+1} = g(a_n)</code> powraca do wartości startowej po k krokach (<code>a_{1+k} = a_1</code>), to ma <strong>okres k</strong>.<br>- Wtedy <code>a_n</code> zależy tylko od <code>(n - 1) mod k</code>.<br>- W tym zadaniu k = 3; cykl to (4, -1/3, 3/4, 4, -1/3, 3/4, ).<br><br>Reference - Iterowane przekształcenia ułamkowe (Möbius transformations):<br>- Funkcja <code>g(x) = 1/(1-x)</code> to przekształcenie Möbiusa z okresem 3 (działa to dla bardzo wielu wartości startowych).<br>- Cyklem 3-elementowym tej funkcji są: x, 1/(1-x), (x-1)/x. Dla x=4 daje to dokładnie 4 → -1/3 → 3/4 → 4.</blockquote>\n<h4>Schemat oceniania CKE</h4>\n<blockquote>Klucz CKE (zadanie 3.2, max 1 pkt):<br>- <strong>1 pkt</strong> - wszystkie 4 odpowiedzi poprawne: F, P, P, F<br>- <strong>0 pkt</strong> - odpowiedź niepełna lub błędna</blockquote>\n<h4>Typowe pułapki</h4>\n<ul><li><strong>Pominięcie znaku minus</strong> - f(8) = -1/3, a stwierdzenie mówi +1/3. Łatwo przeoczyć.</li><li><strong>Zła wartość mod dla 99</strong> - niektórzy uczniowie zakładają <code>99 mod 3 ≠ 0</code>, ale 99 = 33·3, więc 99 mod 3 = <strong>0</strong>.</li><li><strong>Liczenie ręcznie do f(100)</strong> zamiast skorzystać z okresu - strata czasu i ryzyko błędu rachunkowego.</li><li><strong>Mylenie <code>n</code> z <code>(n-1)</code></strong> w wyznaczaniu pozycji w cyklu - formula używa <strong>(n-1) mod 3</strong> bo f(1) startuje cykl.</li><li><strong>Niesprawdzenie cyklu</strong> - niektórzy uczniowie obliczają f(8) krok po kroku, zamiast zauważyć powtarzanie po 3 iteracjach.</li></ul>\n<h4>Złożoność obliczeniowa</h4>\n<ul><li>Naiwne wyznaczanie f(n): O(n) iteracji.</li><li>Z wykorzystaniem cyklu: <strong>O(1)</strong> po wykryciu okresu.</li></ul>"}]}