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

Podobne dokumenty