• Nie Znaleziono Wyników

metoda „dziel i zwyciężaj”

N/A
N/A
Protected

Academic year: 2021

Share "metoda „dziel i zwyciężaj”"

Copied!
1
0
0

Pełen tekst

(1)

ćwiczenia (licencjat dzienny): lista zadań nr 13 16 stycznia 2008 r.

algorytmy i struktury danych

metoda „dziel i zwyciężaj”

Instytut Informatyki Uniwersytetu Wrocławskiego Paweł Rzechonek

1. [∗∗] Dane są dwie posortowane n-elementowe tablice liczb oraz liczba całkowita k z zakresu 1 ≤ k ≤ 2n.

Opisz algorytm znajdowania k-tej co do wielkości liczby spośród liczb zapisanych w obu tablicach. Czas działania twojego algorytmu powinien być rzędu O(log n). Uzasadnij jego poprawność.

2. [∗∗] Jak uogólnić algorytm mnożenia długich liczb metodą „dziel i zwyciężaj”, aby długości liczb nie musiały być potęgami 2, a także by ich długości mogły być różne.

Uwaga. W zadaniu nie chodzi o to, by dopisać tyle zer, aby długości liczb powiększyły się do potęg 2.

3. [∗∗] Niech dane będą dwie długie liczby w systemie d-arnym: jedna o długości m i druga o długości n.

Załóżmy, że m ≤ n. Gdy m ' n, to algorytm pisemny oblicza iloczyn takich liczb w czasie O(n2), a algorytm z wykładu oparty na technice „dziel i zwyciężaj” potrzebuje tylko O(nlog 3) czasu. Ale gdy m jest znacznie mniejsze niż n, to również ten ostatni algorytm jest nie do zaakceptowania. Skonstruuj algorytm, który dla przypadku gdy m ¿ n będzie działał w czasie O(n mlog32).

4. [∗∗∗] Zmodyfikuj algorytm mnożenia długich liczb metodą „dziel i zwyciężaj” w ten sposób, aby liczba była dzielona na trzy części zamiast na dwie. Ile mnożeń krótszych liczb musisz wtedy wykonać? Jaka jest złożoność czasowa twojego algorytmu?

Uwaga. Asymptotyczny czas działania algorytmu z podziałem na trzy części powinien być lepszy niż z podziałem na dwie części.

5. [∗∗] Jak zmodyfikować algorytm Strassena bez pogarszania jego asymptotycznej złożoności O(nlog 7) , aby mnożył macierze kwadratowe n × n metodą „dziel i zwyciężaj”, w których n nie jest potęgą 2 ? Jak uogólnić metodę Strassena, aby można nią było mnożyć macierze o rozmiarach a × b i b × c dla dowolnych a, b, c ∈ N i jaka jest wtedy złożoność tego algorytmu?

Uwaga. W pierwszej części zadania nie chodzi o to, by dopisać tyle zer, aby rozmiar macierzy powiększył się do liczby będącej potęgą 2.

Wskazówka. W drugiej części zadania rozważ najpierw przypadek, gdy a, b i c są potęgami 2. Zastanów się także, co należy zrobić w sytuacji, gdy a, b lub c ma wartość 1.

6. [∗∗] Niech A będzie macierzą o wymiarach k n × n a B macierzą o wymiarach n × k n, gdzie k ∈ N.

Jak szybko można obliczyć iloczyn A · B korzystając z algorytmu Strassena? O ile lepszy jest ten wynik od tradycyjnego mnożenia macierzy? Odpowiedz na te same pytania dla iloczynu B · A.

7. [∗∗] Wyznacz wartość progową (threshold) opłacalności stosowania algorytmu mnożenia długich liczb metodą „dziel i zwyciężaj” z podziałem na dwie części w stosunku do pisemnego algorytmu mnożenia długich liczb „po rosyjsku”. Za operacje dominujące przyjmij działania arytmetyczne na pojedynczych cyfrach (dodawanie, odejmowanie i mnożenie).

8. [∗∗] Wyznacz wartość progową (threshold) opłacalności stosowania algorytmu Strassena w stosunku do tradycyjnego algorytmu mnożenia macierzy. Za operacje dominujące przyjmij działania arytmetyczne na elementach macierzy (dodawanie, odejmowanie i mnożenie).

1

Cytaty

Powiązane dokumenty

Można pokazać ze algorytm sortowania przez scalanie zachowuje się jak O(n log n) (przypomnijmy, że algorytm sortowania przez wybieranie zachowuje się jak O(n 2 ).. Dla małych n

Niech R b¦dzie

Jeśli mnożymy 9 · 6, to zginamy szósty palec licząc od lewej strony (czyli kciuk prawej dłoni).. Wyprostowane palce znajdujące się po lewej stronie od zgiętego palca

• Za prawidłowo wykonane ćwiczenie uzyskujesz liczbę punktów wskazaną w kolumnie PUNKTACJA ZADANIA.. Za brak odpowiedzi lub niepełne rozwiązanie nie

opublikowany na platformie branżowej wyzwaniaHR.pracuj.pl promowany wpisem w kanale Pracuj.pl na LinkedIn *. * promocja wg kolejności zakupu, od momentu premiery nowej edycji,

1. aktualne na dzień składania ofert oświadczenie składane na podstawie art.. Oświadczenia lub dokumenty, składane przez Wykonawcę w postępowaniu na wezwanie Zamawiającego

Ponadto, biuro zawodów Biegu Urodzinowego z PKO Bankiem Polskim ulokowane będzie w Centrum Riviera.. Tam również odbędą się

w spra- wie szczegółowego trybu i kryteriów podziału środków pomiędzy centralę i oddziały wojewódzkie Narodowego Funduszu Zdrowia z przeznaczeniem na finansowanie