Już wiesz
  • Jak działa algorytm iteracyjnego potęgowania liczb (algorytm naiwny i algorytm szybkiego potęgowania).

  • Jak zaimplementować  algorytm szybkiego potęgowania liczb. 

  • Czym charakteryzują się dwie techniki programowania - rekurencyjną i iteracyjną.

Teraz czas sprawdzić swoją wiedzę i umiejętności w praktyce.

Ćwiczenie 1
R1VLB5OHRD1ES
Wymyśl pytanie na kartkówkę związane z tematem materiału.
Ćwiczenie 2
RMJC99TLMAJ5J
Co jest prawdą na temat szybkiego potęgowania liczb? Możliwe odpowiedzi: 1. jest szybszy od sposobu potęgowania według definicji, 2. wykorzystuje wykładnik w systemie binarnym, 3. jest sposobem obliczania wartości wielomianu, 4. jest sposobem rekurencyjnym
Ćwiczenie 3
R14TUPGXUQK1C
Połącz w pary pojęcia z ich definicjami. rekurencja Możliwe odpowiedzi: 1. sposób obliczania wartości wielomianu, który zmniejsza liczbę potrzebnych mnożeń, 2. sposób pozwalający na szybkie obliczenie potęgi liczby, 3. sposób zapisywania liczb, w którym potrzebne są tylko dwie cyfry - 0 i 1, a podstawą tego systemu jest liczba 2, 4. odwoływanie się definicji lub funkcji do samej siebie szybkie potęgowanie Możliwe odpowiedzi: 1. sposób obliczania wartości wielomianu, który zmniejsza liczbę potrzebnych mnożeń, 2. sposób pozwalający na szybkie obliczenie potęgi liczby, 3. sposób zapisywania liczb, w którym potrzebne są tylko dwie cyfry - 0 i 1, a podstawą tego systemu jest liczba 2, 4. odwoływanie się definicji lub funkcji do samej siebie schemat Hornera Możliwe odpowiedzi: 1. sposób obliczania wartości wielomianu, który zmniejsza liczbę potrzebnych mnożeń, 2. sposób pozwalający na szybkie obliczenie potęgi liczby, 3. sposób zapisywania liczb, w którym potrzebne są tylko dwie cyfry - 0 i 1, a podstawą tego systemu jest liczba 2, 4. odwoływanie się definicji lub funkcji do samej siebie system dwójkowy Możliwe odpowiedzi: 1. sposób obliczania wartości wielomianu, który zmniejsza liczbę potrzebnych mnożeń, 2. sposób pozwalający na szybkie obliczenie potęgi liczby, 3. sposób zapisywania liczb, w którym potrzebne są tylko dwie cyfry - 0 i 1, a podstawą tego systemu jest liczba 2, 4. odwoływanie się definicji lub funkcji do samej siebie
Ćwiczenie 4
R9BK96KBJTCCR
Wskaż, ile wynosi złożoność obliczeniowa algorytmu szybkiego potęgowania liczb. Możliwe odpowiedzi: 1. O nawias, logarytm o podstawie dwa z n, zamknięcie nawiasu, 2. O nawias, n, zamknięcie nawiasu, 3. O nawias, n indeks górny, dwa, koniec indeksu górnego, zamknięcie nawiasu, 4. O nawias, pierwiastek kwadratowy z n koniec pierwiastka, zamknięcie nawiasu
Ćwiczenie 5
RRVN7S7Q3RND8
Uzupełnij wartości w działaniach kolejnych iteracji pętli w algorytmie szybkiego potęgowania trzy indeks górny, tysiąc jeden, koniec indeksu górnego. Wykładnik zapisany został w systemie dwójkowym. Wynik będzie przechowywany w zmiennej potega. Zmienna ta została już zainicjowana wartością jeden.
  • potega ← Tu uzupełnij razy, jeden, razy Tu uzupełnij
  • potega ← Tu uzupełnij razy Tu uzupełnij
  • potega ← Tu uzupełnij razy Tu uzupełnij
  • potega ← Tu uzupełnij razy Tu uzupełnij razy, trzy
    Ćwiczenie 6

    Napisz pseudokod algorytmu wyświetlającego liczbę wszystkich możliwych kodów, które możemy ustawić, aby zabezpieczyć pewną kłódkę. Kod ten składa się z  cyfr z zakresu i z  liter ze zbioru .

    Litery i cyfry w szyfrze mogą się powtarzać.

    Przykład:

    Jeżeli kod składa się z dwóch cyfr całkowitych z przedziału i trzech liter ze zbioru , to liczba możliwych kodów to 88444. Ósemki w kodzie oznaczają liczbę kombinacji cyfr (od do mamy siedem cyfr). Są dwie, ponieważ kod składa się z dwóch cyfr. Analogicznie jest w przypadku liter – do wyboru mamy cztery litery (, ,  lub ), każda z nich może pojawić się w jednym z czterech miejsc kodu.

    Wykorzystaj algorytm potęgowania liczb według definicji.

    Specyfikacja problemu:

    Dane:

    • n – liczba naturalna; liczba cyfr zawartych w kodzie

    • m – liczba naturalna; liczba liter zawartych w kodzie

    Wynik:

    Algorytm wypisuje liczbę możliwych kodów zabezpieczających kłódkę.

    R1L2LT898MVBU
    Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
    Ćwiczenie 7

    Okres połowicznego rozpadu jest to czas, po którym liczebność danej próbki maleje dwukrotnie. Na przykład po trzech okresach pozostanie 18 początkowej ilości próbki. Ilość próbki pozostałej po danej liczbie okresów t rozpadu początkowej próbki możemy wyrazić wzorem:

    Nt=N012t

    Zapisz w postaci pseudokodu algorytm wyliczania ilości pozostałej próbki Nt po liczbie okresów t zapisanych w systemie dwójkowym. Wykorzystaj algorytm szybkiego potęgowania liczb w wersji iteracyjnej.

    Specyfikacja problemu:

    Dane:

    • – liczba okresów, liczba naturalna zapisana w systemie binarnym  t 1   t 2   t 3 t x ; wykładnik potęgi

    • N0 – początkowa ilość próbki, liczba naturalna

    Wynik:

    Algorytm wypisuje ilość pozostałej próbki po liczbie okresów t:

    R1KONLNZZAU2U
    Wymyśl pytanie na kartkówkę związane z tematem materiału.
    Ćwiczenie 8

    Ile mnożeń  wykonuje algorytm?

    Napisz dwie funkcje w języku Python, które obliczają wartość an:

    1. Metodą naiwną – przez kolejne mnożenia (na podstawie definicji)

    2. Metodą szybkiego potęgowania

    Każda funkcja powinna:

    • zwracać wynik potęgowania,

    • zwracać liczbę wykonanych mnożeń.  Możesz wykorzystać poniższy szablon

    Linia 1. kratka znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości. Linia 2. kratka WERSJA NAIWNA. Linia 3. kratka znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości. Linia 5. def potega podkreślnik naiwna otwórz nawias okrągły a przecinek n zamknij nawias okrągły dwukropek. Linia 6. wynik znak równości 1. Linia 7. mnozenia znak równości 0. Linia 9. for podkreślnik in range otwórz nawias okrągły n zamknij nawias okrągły dwukropek. Linia 11. pass. Linia 13. return wynik przecinek mnozenia. Linia 16. kratka znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości. Linia 17. kratka SZYBKIE POTĘGOWANIE. Linia 18. kratka znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości. Linia 20. def szybkie podkreślnik potegowanie otwórz nawias okrągły a przecinek n zamknij nawias okrągły dwukropek. Linia 21. wynik znak równości 1. Linia 22. mnozenia znak równości 0. Linia 24. while n zamknij nawias ostrokątny 0 dwukropek. Linia 25. if n procent 2 znak równości znak równości 1 dwukropek. Linia 27. pass. Linia 29. return wynik przecinek mnozenia.