{"id":"informatyka-2018-maj-matura-rozszerzona/zad/1.2","paper_id":"informatyka-2018-maj-matura-rozszerzona","number":"1.2","points":2,"ptype":"open","subject":"informatyka","category":"matura","year":2018,"month":"maj","level":"rozszerzona","text":"Zadanie 1.2. (0-2)\nPodaj najmniejszą oraz największą liczbę n, dla której wynikiem działania algorytmu będzie\np = 10.\nMiejsce na obliczenia.\nOdpowiedź: Najmniejsza liczba to , największa liczba to","answer":null,"answer_text":"Zadanie 1.2. (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:\n11) opisuje podstawowe algorytmy\ni stosuje:\na) algorytmy na liczbach całkowitych,\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 dwie poprawne odpowiedzi.\n1 p. - za jedną poprawną odpowiedź.\n0 p. - za podanie odpowiedzi błędnej albo brak odpowiedzi.\nPoprawna odpowiedź\n730, 1000","solution":"## Poprawna odpowiedź\n\n**Najmniejsza n: 730**\n\n**Największa n: 1000**\n\n## Sposób 1 - wyprowadzenie z definicji p\n\nZ zadania 1.1 wiemy, że algorytm zwraca `p = ⌈∛n⌉` - najmniejsze p takie, że **p³ ≥ n**.\n\n**Aby p = 10:**\n- 10³ ≥ n musi być spełnione → n ≤ 1000.\n- 9³ < n musi być spełnione (inaczej wynik byłby 9 lub mniejszy) → n > 729 → n ≥ 730.\n\n**Zakres: 729 < n ≤ 1000**, czyli **n ∈ {730, 731, , 1000}**.\n\n- Najmniejsza n = **730**.\n- Największa n = **1000**.\n\n## Sposób 2 - weryfikacja na granicach\n\n### n = 729 → czy p = 9?\n9³ = 729 ≥ 729 ✓, więc p = 9 (nie 10). Granica dolna jest WYŁĄCZONA z zakresu p=10.\n\n### n = 730 → czy p = 10?\n9³ = 729 < 730, 10³ = 1000 ≥ 730. Najmniejsze p z p³ ≥ 730 to **10** ✓.\n\n### n = 1000 → czy p = 10?\n10³ = 1000 ≥ 1000 ✓, najmniejsze p z p³ ≥ 1000 to **10** ✓.\n\n### n = 1001 → czy p = 11?\n10³ = 1000 < 1001, 11³ = 1331 ≥ 1001. p = **11**, nie 10. Granica górna 1000 jest WŁĄCZONA do zakresu p=10.\n\n## Sposób 3 - implementacja Python (skanowanie)\n\n```python\ndef algorytm(n):\np, q = 1, n\nwhile p < q:\ns = (p + q) // 2\nif s ** 3 < n:\np = s + 1\nelse:\nq = s\nreturn p\n\nzakres_p10 = [n for n in range(700, 1010) if algorytm(n) == 10]\nprint(\"Min:\", min(zakres_p10)) # 730\nprint(\"Max:\", max(zakres_p10)) # 1000\nprint(\"Liczność:\", len(zakres_p10)) # 271\n\n## Reference informatyczny - sufit pierwiastka sześciennego\n\n> Reference - Sufit funkcji odwrotnej:\n> - Niech `f` będzie monotoniczna rosnąca i całkowitoliczbowa.\n> - Wartość `g(n) = min { k : f(k) ≥ n }` jest funkcją odwrotną \"od góry\".\n> - Dla f(k) = k³: g(n) = ⌈∛n⌉.\n> - **Zakres wartości n** dla którego g(n) = m: `f(m-1) < n ≤ f(m)`, czyli `(m-1)³ < n ≤ m³`.\n>\n> Reference - Sześciany potęg 10:\n> - 9³ = 729\n> - 10³ = 1000\n> - 11³ = 1331\n> - 12³ = 1728\n> - 13³ = 2197\n\n## Schemat oceniania CKE\n\n> Klucz CKE (zadanie 1.2, max 2 pkt):\n> - **2 pkt** - obie wartości prawidłowe (min = 730, max = 1000)\n> - **1 pkt** - jedna prawidłowa\n> - **0 pkt** - błędne lub brak\n\n## Typowe pułapki\n\n- **Min = 729** - pomyłka. Dla n=729 wynik to p=9 (bo 9³=729 ≥ 729). Algorytm ma warunek `s³ < n` (ostry), więc 9³ = n daje p = 9.\n- **Max = 999** - pomyłka. Dla n=1000 wynik to p=10 (bo 10³=1000 ≥ 1000). 1000 JEST w zakresie.\n- **Pomylenie krańców otwartych i zamkniętych** - z definicji algorytmu zakres to (9³, 10³] = (729, 1000] = {730, , 1000}.\n- **Niepoprawne wyliczenie 9³ lub 10³** - proste, ale uczniowie potrafią się pomylić.\n\n## Złożoność obliczeniowa\n\n- Obliczenie zakresu: O(1) (wzór).\n- Liczność zakresu: 1000 - 730 + 1 = 271 liczb.","image":"img/informatyka-2018-maj-matura-rozszerzona/zad-1.2.webp","solution_image":null,"topics":null,"page_from":3,"source":"ocr","answer_source":null,"answer_text_source":"ocr","solution_source":"maturazai","text_source":"ocr","source_label":"Informatyka · Matura · maj 2018 (rozszerzona)","subject_label":"Informatyka","category_label":"Matura","text_html":"<p>Zadanie 1.2. (0-2)<br>Podaj najmniejszą oraz największą liczbę n, dla której wynikiem działania algorytmu będzie<br>p = 10.<br>Miejsce na obliczenia.<br>Odpowiedź: Najmniejsza liczba to , największa liczba to</p>","answer_text_html":"<p>Zadanie 1.2. (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>opisuje podstawowe algorytmy</li></ol>\n<p>i stosuje:<br>a) algorytmy na liczbach całkowitych,</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 dwie poprawne odpowiedzi.<br>1 p. - za jedną poprawną odpowiedź.<br>0 p. - za podanie odpowiedzi błędnej albo brak odpowiedzi.<br>Poprawna odpowiedź<br>730, 1000</p>","solutions":[{"source":"maturazai","label":"maturazai.pl (AI)","kind":"text","html":"<h4>Poprawna odpowiedź</h4>\n<p><strong>Najmniejsza n: 730</strong></p>\n<p><strong>Największa n: 1000</strong></p>\n<h4>Sposób 1 - wyprowadzenie z definicji p</h4>\n<p>Z zadania 1.1 wiemy, że algorytm zwraca <code>p = ⌈∛n⌉</code> - najmniejsze p takie, że <strong>p³ ≥ n</strong>.</p>\n<p><strong>Aby p = 10:</strong></p>\n<ul><li>10³ ≥ n musi być spełnione → n ≤ 1000.</li><li>9³ &lt; n musi być spełnione (inaczej wynik byłby 9 lub mniejszy) → n &gt; 729 → n ≥ 730.</li></ul>\n<p><strong>Zakres: 729 &lt; n ≤ 1000</strong>, czyli <strong>n ∈ {730, 731, , 1000}</strong>.</p>\n<ul><li>Najmniejsza n = <strong>730</strong>.</li><li>Największa n = <strong>1000</strong>.</li></ul>\n<h4>Sposób 2 - weryfikacja na granicach</h4>\n<h5>n = 729 → czy p = 9?</h5>\n<p>9³ = 729 ≥ 729 ✓, więc p = 9 (nie 10). Granica dolna jest WYŁĄCZONA z zakresu p=10.</p>\n<h5>n = 730 → czy p = 10?</h5>\n<p>9³ = 729 &lt; 730, 10³ = 1000 ≥ 730. Najmniejsze p z p³ ≥ 730 to <strong>10</strong> ✓.</p>\n<h5>n = 1000 → czy p = 10?</h5>\n<p>10³ = 1000 ≥ 1000 ✓, najmniejsze p z p³ ≥ 1000 to <strong>10</strong> ✓.</p>\n<h5>n = 1001 → czy p = 11?</h5>\n<p>10³ = 1000 &lt; 1001, 11³ = 1331 ≥ 1001. p = <strong>11</strong>, nie 10. Granica górna 1000 jest WŁĄCZONA do zakresu p=10.</p>\n<h4>Sposób 3 - implementacja Python (skanowanie)</h4>\n<p>```python<br>def algorytm(n):<br>p, q = 1, n<br>while p &lt; q:<br>s = (p + q) // 2<br>if s ** 3 &lt; n:<br>p = s + 1<br>else:<br>q = s<br>return p</p>\n<p>zakres_p10 = [n for n in range(700, 1010) if algorytm(n) == 10]<br>print(&quot;Min:&quot;, min(zakres_p10)) # 730<br>print(&quot;Max:&quot;, max(zakres_p10)) # 1000<br>print(&quot;Liczność:&quot;, len(zakres_p10)) # 271</p>\n<h4>Reference informatyczny - sufit pierwiastka sześciennego</h4>\n<blockquote>Reference - Sufit funkcji odwrotnej:<br>- Niech <code>f</code> będzie monotoniczna rosnąca i całkowitoliczbowa.<br>- Wartość <code>g(n) = min { k : f(k) ≥ n }</code> jest funkcją odwrotną &quot;od góry&quot;.<br>- Dla f(k) = k³: g(n) = ⌈∛n⌉.<br>- <strong>Zakres wartości n</strong> dla którego g(n) = m: <code>f(m-1) &lt; n ≤ f(m)</code>, czyli <code>(m-1)³ &lt; n ≤ m³</code>.<br><br>Reference - Sześciany potęg 10:<br>- 9³ = 729<br>- 10³ = 1000<br>- 11³ = 1331<br>- 12³ = 1728<br>- 13³ = 2197</blockquote>\n<h4>Schemat oceniania CKE</h4>\n<blockquote>Klucz CKE (zadanie 1.2, max 2 pkt):<br>- <strong>2 pkt</strong> - obie wartości prawidłowe (min = 730, max = 1000)<br>- <strong>1 pkt</strong> - jedna prawidłowa<br>- <strong>0 pkt</strong> - błędne lub brak</blockquote>\n<h4>Typowe pułapki</h4>\n<ul><li><strong>Min = 729</strong> - pomyłka. Dla n=729 wynik to p=9 (bo 9³=729 ≥ 729). Algorytm ma warunek <code>s³ &lt; n</code> (ostry), więc 9³ = n daje p = 9.</li><li><strong>Max = 999</strong> - pomyłka. Dla n=1000 wynik to p=10 (bo 10³=1000 ≥ 1000). 1000 JEST w zakresie.</li><li><strong>Pomylenie krańców otwartych i zamkniętych</strong> - z definicji algorytmu zakres to (9³, 10³] = (729, 1000] = {730, , 1000}.</li><li><strong>Niepoprawne wyliczenie 9³ lub 10³</strong> - proste, ale uczniowie potrafią się pomylić.</li></ul>\n<h4>Złożoność obliczeniowa</h4>\n<ul><li>Obliczenie zakresu: O(1) (wzór).</li><li>Liczność zakresu: 1000 - 730 + 1 = 271 liczb.</li></ul>"}]}