KWALIFIKACJA INF2 + INF3 - CZERWIEC 2013

PYTANIE NR 23.
Przedstawiony w postaci listy kroków algorytm służy do obliczania
Ilustracja przedstawia algorytm w postaci listy kroków, który służy do obliczania N-tej potęgi liczby M.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "N-tej potęgi liczby M." pasuje do algorytmu, w którym wynik startuje od 1, a następnie w pętli jest N razy mnożony przez M. Taki schemat realizuje M·M·…·M (N czynników), czyli MN. Pozostałe opcje dotyczą innych działań (silnia, iloczyn, wielokrotność).

Pełne wyjaśnienie:

Algorytmy zapisane jako lista kroków (pseudokod) często można rozpoznać po zmiennej akumulatorowej i operacji wykonywanej w pętli.

  • Jeżeli algorytm ustawia wynik na wartość początkową (najczęściej 1), a następnie wykonuje pętlę dokładnie N razy, w której pojawia się działanie typu wynik = wynik * M, to w wyniku powstaje iloczyn N jednakowych czynników: M·M·…·M.
  • Taki iloczyn jest definicją potęgi: MN, czyli "N-tej potęgi liczby M".

Dlaczego pozostałe odpowiedzi nie pasują do typowego schematu potęgowania?

  • "Najmniejsza wielokrotność liczby M" (w praktyce: najmniejsza wielokrotność spełniająca warunek) wymagałaby sprawdzania warunku podzielności lub przeszukiwania kolejnych wielokrotności, zwykle z operacjami modulo albo z użyciem dwóch liczb i wyznaczaniem NWD/NWW. Samo N-krotne mnożenie przez M nie rozwiązuje takiego problemu.
  • "Iloczyn liczb N i M" to pojedyncze mnożenie N*M. Algorytm z pętlą i akumulacją mnożeń jest na to zbyt rozbudowany; dodatkowo N*M nie wymaga N iteracji.
  • "N-silnia" powstaje, gdy mnożymy kolejne liczby naturalne: 1·2·3·…·N. W pseudokodzie silni w pętli mnożnikiem jest zmienna rosnąca (np. i), a nie stała M.

Wskazówka egzaminacyjna: szukaj w krokach algorytmu odpowiedzi na dwa pytania: co jest mnożone (stała M czy zmienna licznika) oraz ile razy wykonywana jest pętla (N iteracji czy do spełnienia warunku). To zwykle wystarcza do odróżnienia potęgowania od silni i zwykłego iloczynu.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
"N-ta potęga liczby M" oznacza wartość MN, czyli iloczyn N jednakowych czynników: M·M·…·M. W algorytmie zwykle realizuje się to przez ustawienie wyniku na 1 i wykonanie N kroków, w których wynik jest mnożony przez M.
Szukaj zmiennej wyniku (akumulatora) ustawionej na 1 oraz pętli wykonywanej N razy. Jeśli w środku pętli pojawia się działanie typu wynik = wynik * M, to algorytm buduje MN. Kluczowe jest, że mnożnikiem jest stałe M.
Iloczyn N*M to pojedyncze mnożenie dwóch liczb. Potęgowanie MN to N-krotne mnożenie liczby M przez samą siebie. W pseudokodzie potęgowania zobaczysz pętlę/akumulator, a dla N*M wystarcza jeden krok obliczeniowy.
W silni mnożysz kolejne liczby (1·2·…·N), więc w pętli mnożnikiem jest zmienna licznika (np. i). W potęgowaniu mnożysz przez stałe M i robisz to N razy. Różnica wynika z tego, czy czynnik zmienia się w każdej iteracji.
Tak, istnieje tzw. szybkie potęgowanie (potęgowanie przez podnoszenie do kwadratu), które zmniejsza liczbę mnożeń do rzędu logarytmu z N, wykorzystując rozkład wykładnika na bity. Na egzaminie często wystarcza rozpoznanie schematu, czy to wersja "naiwna", czy "szybka".
Wartość 1 jest elementem neutralnym mnożenia, więc nie zmienia wyniku w pierwszym kroku. Dzięki temu po pierwszym mnożeniu otrzymujesz M, a po N iteracjach dokładnie MN. Gdyby startować od 0, wynik zawsze pozostałby 0.
Przydaje się przy czytaniu i poprawianiu kodu (np. w JS/PHP), ocenie złożoności funkcji, optymalizacji fragmentów obliczeniowych oraz rozumieniu działania bibliotek. Egzamin INF.3 często sprawdza umiejętność interpretacji pseudokodu i przewidywania wyniku działania.
Nie zawsze. Może być zapisany rekurencyjnie albo wykorzystywać operacje bitowe (szybkie potęgowanie). Jednak w zadaniach szkolnych często spotyka się prostą pętlę z akumulacją mnożeń, bo łatwo ją przeanalizować i porównać z innymi klasycznymi algorytmami.
Najczęstsze błędy to: automatyczne skojarzenie pętli z silnią, ignorowanie tego, co jest mnożnikiem (stała M vs licznik), oraz mylenie "N razy mnożyć przez M" z "N*M". Pomaga analiza wartości początkowej wyniku i tego, jak zmieniają się zmienne.
Podstaw proste liczby, np. M=2 i N=3. Jeśli algorytm robi trzy mnożenia przez 2, wynik powinien wyjść 8 (23). Dla porównania N*M dałoby 6, a 3! dałoby 6. Taki test kontrolny ułatwia odróżnienie podobnych opcji.
info

To pytanie poprawnie rozwiązuje 58% zdających egzamin. średnie

Specjaliści zwracają uwagę: "Odpowiedź "N-tej potęgi liczby M." pasuje do algorytmu, w którym wynik startuje od 1, a następnie w pętli jest N razy mnożony przez M."

Źródła:

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, "Wprowadzenie do algorytmów", rozdziały dot. analizy algorytmów i podstawowych technik obliczeń (potęgowanie jako wielokrotne mnożenie / szybkie potęgowanie) – źródło książkowe
  • Donald E. Knuth, "The Art of Computer Programming", tom 1: Fundamental Algorithms, sekcje dot. podstawowych algorytmów iteracyjnych i operacji arytmetycznych – źródło książkowe
  • Wikipedia: "Potęgowanie" (definicja potęgi jako iloczynu powtarzanego), https://pl.wikipedia.org/wiki/Pot%C4%99gowanie - dostęp 2026-03-02

Materiały:

  • Podręczniki i notatki z podstaw algorytmiki (pętle, akumulatory, pseudokod)
  • Zadania treningowe z rozpoznawania działania algorytmów na podstawie kroków
  • Dokumentacja języka programowania używanego na zajęciach (operatory mnożenia, pętle)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego