1
Polecenie 1

Symulacja przedstawia złożoności obliczeniowe różnych rozwiązań tego samego problemu obliczeniowego – znalezienia NWD dwóch liczb. Dane są dwie liczby – oraz , takie że . Naszym zadaniem jest znalezienie ich największego wspólnego dzielnika. By to zrobić, możemy wykorzystać kilka metod.

  • Rozwiązanie siłowe (ang. brute force) – to metoda polegająca na sprawdzeniu wszystkich możliwych przypadków w celu znalezienia rozwiązania danego problemu, w tym wypadku sprawdzamy wszystkie liczby całkowite od 1 do , poszukując tych, które są wspólnymi dzielnikami liczb oraz – złożoność tego rozwiązania to .

  • Algorytm Euklidesa z wykorzystaniem iteracji – jego złożoność obliczeniowa wynosi . Więcej na temat tego algorytmu znajdziesz w e‑materiale Algorytm EuklidesaP7OAFYVSiAlgorytm Euklidesa.

  • Algorytm Euklidesa z użyciem rekurencji – jego złożoność obliczeniowa wynosi również . Więcej na temat tego algorytmu znajdziesz w e‑materiale Algorytm EuklidesaP7OAFYVSiAlgorytm Euklidesa.

  • Rozkład na czynniki pierwsze – jego złożoność obliczeniowa to .

  • Algorytm Steina – jego złożoność obliczeniowa to .

Algorytm Steina
Definicja: Algorytm Steina

Algorytm służący do wyliczania największego wspólnego dzielnika dwóch liczb naturalnych. Pozwala znacząco zmniejszyć czas obliczeń. Rozwiązanie opiera się na przyjęciu następujących założeń:

  1. Przyjmując, że oraz , zakładamy, że obliczenia pozostaną poprawne.

  2. Dla parzystych , mamy .

  3. Gdy jest liczbą parzystą, a  jest nieparzystą (pamiętajmy o przemienności NWD), to .

  4. Dla nieparzystych , mamy .

Kroki od 2. do 4. wykonujemy w pętli do momentu, w którym albo .

Przeanalizuj wykres interaktywny. Przyjrzyj się temu, jak zmienia się liczba wykonywanych operacji dla poniższych par liczb:

  • przypadek 1: 27 oraz 5,

  • przypadek 2: 20 oraz 23,

  • przypadek 3: 15 oraz 12,

  • przypadek 4: 94 oraz 87.

R5wSYwjRUxG3h
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Przygotuj własną symulację, w której zapiszesz złożoność obliczeniową dla różnych rozwiązań tego samego problemu, np. sortowania zbioru liczb. Złożoność oblicz dla różnych przypadków.

R1H5qwMuIkxZn
Wymyśl pytanie na kartkówkę związane z tematem materiału.
Polecenie 2
RxIJUGtch3lMe
{duzepole@Zastanów się, jaka czynność mogłaby mieć kwadratową złożoność czasową.).