ALGORYTMIKA
Transkrypt
ALGORYTMIKA
ALGORYTMIKA Lista 1 Przypomnijmy, »e ka»da liczba naturalna n ma jednoznaczny rozkªad na czynniki pierwsze, to znaczy da si¦ przedstawi¢ w postaci: n= pα1 1 pα2 2 pα3 3 ... = ∞ Y pαi i i=1 gdzie p1 , p2 , p3 , . . . s¡ kolejnymi liczbami pierwszymi (czyli 2, 3, 5, . . .), a α1 , α2 , α3 , . . . liczbami naturalnymi ≥ 0, z których tylko sko«czona ilo±¢ jest wi¦ksza od zera. W praktyce przedstawiaj¡c rozkªad liczby na czynniki pierwsze ograniczamy si¦ tylko do tych liczb pierwszych, które wchodz¡ w rozkªad z niezerowym wykªadnikiem. Powy»szy ogólny wzór mo»e by¢ jednak wygodniejszy w formuªowaniu ogólnych stwierdze« (takich jak te poni»ej). 1. Wykorzysta¢ jednoznaczny rozkªad na czynniki pierwsze liczb m, n do napisania wzoru na NWD(m, n) i NWW(m, n). 2. Napisz wzór na zale»no±¢ mi¦dzy NWD(m, n) i NWW(m, n) i uzasadnij. Opisz metod¦/algorytm wyliczania NWW(m, n); 3. Opisz algorytm skracania uªamka: n Dane: uªamek m ; p n Wynik: uªamek nieskracalny q = m . 4. Na przykªadach podaj metod¦ znajdowania zapisu dziesi¦tnego liczb w zapisie binarnym: a) 1001101, b) 1111000, c) 1000000001. 5. Na przykªadach podaj metod¦ znajdowania zapisu binarnego liczb w zapisie dziesi¦tnym: a) 729, b) 4679, c) 99999. 6. Opisz algorytm przeksztaªcania zapisu binarnego w dziesi¦tny. 7. Opisz algorytm przeksztaªcania zapisu dziesi¦tnego w binarny. ∗ 8. Udowodni¢ twierdzenie o jednoznacznym rozkªadzie liczby na czynniki pierwsze. ∗ 9. Wykaza¢, »e liczb pierwszych jest niesko«czenie wiele. ALGORYTMIKA Lista 2 Wyja±nienie: W j¦zyku informatycznym bitem nazywamy cyfr¦ w systemie binarnym. Liczba n-bitowa to liczba w zapisie binarnym zªo»ona z n cyfr (czyli zer lub jedynek). 1. Podaj wzór na zakres liczby n-bitowej liczby (czyli jaka jest najmniejsza i jaka jest najwi¦ksza liczba n-bitowa). 2. Podaj wzór na warto±¢ liczby n-bitowej (n > 4), w której dwa pierwsze i dwa ostatnie bity s¡ ustawione na 1, a wszystkie pozostaªe bity s¡ ustawione na 0. 3. Jaki zakres liczbowy przyjm¡ n-bitowe liczby binarne, w których bity na pozycjach parzystych 0, 2, 4 ... s¡ ustawione zawsze na 1, a bity na pozycjach nieparzystych 1, 3, 5, ... mog¡ przyjmowa¢ warto±ci 0 lub 1. 4. Zaproponuj szybki algorytm przeliczania liczb binarnych na czwórkowe i na odwrót. 5. Podaj szybki (tzn. bez obliczania ich warto±ci dziesi¦tnej) algorytm znajdowania wi¦kszej z dwóch liczb binarnych. 6. Podaj szybki (tzn. bez obliczania ich warto±ci dziesi¦tnej) algorytm przeliczania liczb dwójkowych na liczby szesnastkowe i na odwrót. 7. W pewnym systemie ksi¦gowym wykonuje si¦ sumowania liczb naturalnych o zakresie od 0 do 9999. W sumach mo»e wyst¡pi¢ maksymalnie 20 skªadników. Okre±l minimaln¡ liczb¦ bitów, które b¦d¡ niezb¦dne do przechowywania wyników tych sumowa«. ∗ 8. Okre±l dªugo±¢ zapisu liczby n: a) w zapisie dziesi¦tnym b) w zapisie binarnym. 2 ALGORYTMIKA Lista 3 1. Masz dane trzy liczby A, B i C . Zaprojektuj algorytm, który znajdzie w±ród tych liczb liczb¦ najmniejsz¡. Zaprojektuj algorytm, który znajdzie w±ród tych liczb liczb¦ najwi¦ksz¡. 2. Wykorzystuj¡c algorytm wyznaczania NWD(a, b) zaprojektuj algorytm obliczaj¡cy najwi¦kszy wspólny dzielnik trzech liczb naturalnych. 3. Zaprojektuj algorytm, który w±ród trzech liczb odszukuje liczb¦ ±rodkow¡ b, tzn. tak¡ która jest wi¦ksza lub równa jednej z pozostaªych liczb oraz mniejsza lub równa drugiej z pozostaªych liczb. 4. Napisz algorytm obliczania pierwiastków równania kwadratowego: Dane: a, b, c ∈ R; Wynik: Pierwiastki równiania ax2 + bx + c = 0. 5. Zapisz algorytm rozwi¡zywania ukªadu dwóch równa« liniowych. 6. Zapisz algorytm rekurencyjny RFib(n) obliczania n-tej liczby Fibonacciego ∗ 7. Zasymuluj dziaªanie algorytmu RFib(n) dla n = 5. Zaprojektuj taki algorytm obliczania n-tej liczby Fibonacciego, w którym komputer nie musi oblicza¢ wielokrotnie tych samych warto±ci. 3