Lecture 05

background image

Jagiellonian University

Theoretical

Computer Science

Matematyka Dyskretna

Wykład 04

WSZIB NLU

Edward Szczypka

szczypka@tcs.uj.edu.pl

zima 2013

Edward Szczypka

Matematyka Dyskretna

1 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

spis

Edward Szczypka

Matematyka Dyskretna

2 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Zło˙zono ´s ´c Obliczeniowa Algorytmu

bardzo nieformalnie

jak du˙zo czasu dany algorytm potrzebuje, by wykona´c
obliczenia, w proporcji do danych wej´sciowych

nieformalnie

ile elementarnych kroków (np. dodawa ´n, mno˙ze ´n, podstawie ´n)
dany algorytm wykona przy danych wej´sciowych
pewnego rozmiaru

formalnie funkcja

t : N −→ N podaj ˛

aca liczb ˛e kroków t(n) dla

danych wej´sciowych o rozmiarze n.

Uwagi:

zamiast mierzy´c czas np. w sekundach, zliczamy kroki algorytmu.
Chodzi o to, by uniezale˙zni´c si ˛e od szybko´sci konkretnego komputera i zajmowa´c si ˛e
samym algorytmem

zwykle jako kroki wybieramy operacje wykonywana w algorytmie najcz ˛e´sciej

rozmiar danych wej´sciowych mo˙zna mierzy´c np. w bajtach, ale mo˙zna posługiwa´c si ˛e
dowolna jednostka. Zmiana jednostki oznacza jedynie przemno˙zenie rozmiaru danych
przez stała (np. 1 KB = 1024 B)

Edward Szczypka

Matematyka Dyskretna

3 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Zło˙zono ´s ´c Obliczeniowa Algorytmu - przykład

Przykład 1 Algorytm dodawania liczb z tablicy n-elementowej. Dane wej´sciowe:
T [1], T [2], . . . , T [n]
Algorytm:

i := 1

s := 0

while i <= n do

s := s + T[i]

i := i + 1

end

Jako rozmiar danych wej´sciowych bierzemy po prostu n. Ten algorytm dla danych o rozmiarze n
wykonuje n kroków – dodawa ´n postaci: s := s + T [i].
Czyli zło˙zono´s´c opisana jest funkcja t(n) = n.

Je´sli wyst ˛epuj ˛

ace w tablicy liczby s ˛

a du˙ze (przekraczaj ˛

ace 2n), musimy uwzgl ˛edni´c to w ilo´sci

wykonywanych operacji bitowych.

Edward Szczypka

Matematyka Dyskretna

4 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Zło˙zono ´s ´c pesymistyczna i ´srednia

Cz ˛esto jest tak, ze nie ka˙zde dane rozmiaru n wymagaj ˛

a takiego samego czasu oblicze ´n.

Np. niektóre algorytmy sortowania n-elementowej tablicy wykonuj ˛

a od n do n

2

kroków, w

zale˙zno´sci od tego, jak bardzo tablica była juz na wej´sciu posortowana. Innymi słowy, czas
oblicze ´n zale˙zy zwykle nie tylko od samego rozmiaru danych, ale tez od tego, jakie konkretnie
dane we´zmiemy.

Rozró˙znia si ˛e wiec zło˙zono´s´c algorytmu pesymistyczna i ´sredni ˛

a:

Zło˙zono´s´c pesymistyczna to najwi ˛eksza liczba kroków przy danych o rozmiarze n.

Zło˙zono´s´c ´srednia to ´srednia liczba kroków przy danych o rozmiarze n.

Czyli:

zło˙zono´s´c pesymistyczna to zło˙zono´s´c dla najgorszych mo˙zliwych danych,

zło˙zono´s´c ´srednia to zło˙zono´s´c dla przeci ˛etnych danych.

Edward Szczypka

Matematyka Dyskretna

5 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Zło˙zono ´s ´c pesymistyczna i ´srednia

Algorytm z przykładu 1 wykonuje n kroków niezale˙znie od tego, jakie liczby otrzymał.

Jego zło˙zono´s´c pesymistyczna jest wiec taka sama jak zło˙zono´s´c ´srednia. Oszacowanie

zło˙zono´sci ´sredniej jest cz ˛esto bardzo trudne, trzeba bowiem zna´c rozkład danych wej´sciowych

(co si ˛e trafia na wej´sciu i jak cz ˛esto). Ale zło˙zono´s´c ´srednia jest interesuj ˛

aca i wa˙zna: Istniej ˛

a

algorytmy, które maja zło˙zono´s´c ´srednia istotnie mniejsza od pesymistycznej, i dzi ˛eki temu s ˛

a

u˙zyteczne (np. quicksort).

Edward Szczypka

Matematyka Dyskretna

6 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Zło˙zono ´s ´c pami ˛eciowa

Oprócz czasochłonno´sci algorytmów rozwa˙za si ˛e tez ich pami ˛eciochłonno´sci.

Pojecie to jest opisywane przez zło˙zono´s´c pami ˛eciowa algorytmu.

Formalnie jest to funkcja s : N −→ N, która podaje ilo´s´c pami ˛eci s(n), której algorytm
potrzebuje przy danych wej´sciowych o rozmiarze n.

Tu tak˙ze mo˙zna mówi´c o zło˙zono´sci pesymistycznej i ´sredniej.

Zło˙zono´s´c czasowa jest jednak na ogół bardziej interesuj ˛

aca, m.in. dlatego, ze ogranicza

ona zło˙zono´s´c pami ˛eciowa (algorytm, który działa krótko, nie ma czasu, by zaj ˛

ac du˙zo

pami ˛eci).

Edward Szczypka

Matematyka Dyskretna

7 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Porównywanie funkcji zło˙zono ´sci

Dokładne obliczenie zło˙zono´sci algorytmu jest na ogół trudne.
Jest jednak potrzebne przy porównywaniu szybko´sci ich działania i podejmowaniu decyzji o
wyborze algorytmu przy rozwi ˛

azywaniu konkretnego problemu.

Z drugiej strony nie zwracamy uwagi na popraw ˛e szybko´sci algorytmu o stała multiplikatywna –
nie rozró˙zniamy np. miedzy zło˙zono´sciami t(n) = n oraz t

0

(

n) = 3n + 2.

przyspieszenie o stała – np. trzykrotnie –
to ró˙znica hardwareñowa (3 razy szybszy procesor),
a nie softwareñowa Chcemy jednak rozró˙zni´c funkcje działaj ˛

ace w czasie rz ˛edu log n i n,

czy tez n

2

i 2n.

Edward Szczypka

Matematyka Dyskretna

8 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

n

10

50

100

300

1000

5n

50

250

500

1500

3000

n · log

2

n

33

282

665

2469

9966

n

2

100

2500

10000

90000

1000000

n

3

1000

125000

1000000

27000000

1000000000

2

n

1024

10

6

10

31

10

91

10

302

n!

3628800

10

65

10

161

10

623

niewyobra˙zalne

n

n

10

1

0

10

8

5

10

2

01

10

7

44

niewyobra˙zalne

oraz czasu działania programu na komputerze taktowanym 1MHz – tzn. milion operacji na
sekund ˛e:

n

10

50

100

300

1000

n

2

0.0001

sec

0.0004

sec

0.0025

sec

0.01

sec

0.9

sec

n

5

0.1

sec

3.2

sec

5.2

min

2.8

godzin

28.1

dnia

2

n

0.001

sec

1

sec

35.7

lat

4 · 10

12

stuleci

10

75

stuleci

n

n

2.8

godzin

3.3

biliony lat

10

74

stuleci

10

185

stuleci

10

728

stuleci

Wida´c tu, ze nawet przyspieszenie o stała nie pomaga

A 300 w praktycznych zastosowaniach to niewielkie dane . . .

Edward Szczypka

Matematyka Dyskretna

9 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Rz ˛

ad wielko ´sci - Notacja O

Funkcje porównujemy z uwagi na rz ˛

ad wielko´sci ˝

O zaniedbuj ˛

ac stała, tzn. przyspieszenie

hardwareñowe.

Mówimy, ze funkcja f jest rz ˛edu co najwy˙zej takiego, jak funkcja g, je´sli dla pewnej stałej c i
odpowiednio du˙zych n, zachodzi f (n) ¬ c · g(n)
Symbolicznie dla f , g : N −→ N

c N m N n ­ m f (n) ¬ c · g(n).

Piszemy wówczas f (n) = O(g(n)) lub poprawniej f (n) O(g(n)).

Nieformalnie – funkcja f ro´snie nie szybciej ni˙z funkcja g, czyli

szybko´s´c(f ) ¬ szybko´s´c(g).

Nie zwracamy uwagi na to, co si ˛e dzieje na pocz ˛

atku

interesuj ˛

a nas tylko du˙ze liczby (czyli du˙ze rozmiary danych wej´sciowych).

Nie zwracamy tez uwagi na jednostki

mo˙zna przemno˙zy´c funkcje przez dowolna stała i to nie zmienia jej rz ˛edu.

Edward Szczypka

Matematyka Dyskretna

10 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Rz ˛

ad wielko ´sci - Notacja O

Przykład 2 Niech f (n) = 2n + 5. Jest f (n) O(n), czyli f jest rz ˛edu co najwy˙zej takiego jak
funkcja liniowa g(n) = n.
Istotnie, wystarczy wzi ˛

a´c c = 3 oraz m = 5:

wtedy dla n > 5 mamy 2n + 5 ¬ 3n.

Wszystkie funkcje postaci an + b s ˛

a rz ˛edu O(n)

– o algorytmach działaj ˛

acych w takim czasie mówimy ze s ˛

a liniowe.

Przykład 3 Funkcja 132 · n O(n

2

)

.

Istotnie dla c = 132 mamy 132 · n ¬ 132n

2

Przykład 4 Ale n

2

/

O(n).

Nie ma bowiem takiej stałej c, dla której n

2

¬ c · n zachodziłoby dla prawie wszystkich n.

Gdyby taka stała była, to: n

2

¬ c · n dawałoby n ¬ c, czyli po˙z ˛

adana nierówno´s´c zachodzi tylko

dla sko ´nczenie wielu n = 0, 1, 2, . . . , c.

O funkcjach rz ˛edu O(n

2

)

mówimy, ze s ˛

a kwadratowe, a o funkcjach rz ˛edu O(n

3

)

mówimy, ze s ˛

a

sze´scienne.

Edward Szczypka

Matematyka Dyskretna

11 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Rz ˛

ad wielko ´sci - własno ´sci

Zadanie 5 Udowodnij, ˙ze;

f O(f )

je´sli f O(g) i g O(h), to f O(h),

je´sli f

1

,

f

2

O(g) to f

1

+

f

2

O(g),

je´sli f

1

,

f

2

O(g) to f

1

· f

2

O(g

2

)

Nadu˙zywaj ˛

ac troch ˛e notacji mo˙zemy pisa´c, ze:

c · O(f ) = O(c · f )

O(f ) + O(g) = O(f + g)

O(f ) · O(g) = O(f · g)

O(O(f )) = O(f )

f (n) · O(g(n)) = O(f (n) · g(n))

Edward Szczypka

Matematyka Dyskretna

12 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Rz ˛

ad wielko ´sci - wielomianów

Przykład 6 Dla wielomianów f , g rz ˛

ad ich wielko´sci wyznaczony jest przez stopie ´n:

f O(g) ⇐⇒

stopie ´n(f) = stopie ´n(g).

Ustala to hierarchi ˛e rz ˛edów funkcji:

n, n

2

,

n

3

,

n

4

, . . . ,

n

d

,

n

d +1

, . . .

Równie˙z dla stopni b ˛ed ˛

acymi dowolnymi liczbami dodatnimi mamy

n

a

O(n

b

)

wtedy i tylko wtedy, gdy a ¬ b

Na przykład:

n O(n)

3

n O(

n)

Edward Szczypka

Matematyka Dyskretna

13 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Rz ˛

ad wielko ´sci wielomianów i funkcji wykładniczej

Przykład 7 Mamy n O(2

n

)

. Istotnie łatwo dowie´s´c indukcyjnie, ze n ¬ 2

n

.

Podobnie n

2

O(2

n

)

. Wiemy juz, ze ka˙zda funkcja liniowa jest w O(2

n

)

, istnieje wiec stała c

taka, ze od pewnego miejsca 2n + 1 ¬ c · 2

n

.

Pokazemy, ze wtedy tez n

2

¬ c · 2

n

. Indukcyjnie

(

n + 1)

2

=

n

2

+

2n + 1 ¬ c · 2

n

+ (

2n + 1) ¬ c · 2

n

+

c · 2

n

=

c · 2

n+1

Analogicznie, wiedz ˛

ac juz, ze ka˙zda funkcja kwadratowa jest w O(2n), czyli ze dla pewnej stałej c

od pewnego miejsca mamy 3n

2

+

3n + 1 ¬ c · 2

n

, mo˙zemy pokaza´c indukcyjnie, ze n

3

¬ c · 2

n

.

Istotnie

(

n + 1)

3

=

n

3

+

3n

2

+

3n + 1 ¬ c · 2n + c · 2

n

=

c · 2

n+1

Ogólnie, dla dowolnego stopnia d mamy n

d

O(a

n

)

, o ile tylko a > 1.

Edward Szczypka

Matematyka Dyskretna

14 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Rz ˛

ad wielko ´sci wielomianów i funkcji wykładniczej

Przykład 8 Oczywi´scie 2

n

¬ 3

n

, wiec 2

n

O(3

n

)

.

Ale 3

n

/

O(2

n

)

. Gdyby bowiem 3

n

¬ c · 2

n

to

3

2

n

=

3

n

2

n

¬ c

podczas gdy funkcja wykładnicza

3
2

n

ro´snie do niesko ´nczono´sci, nie mo˙ze zatem by´c

ograniczona przez stał ˛

a c.

Ogólnie dla a, b > 1, mamy a

n

O(b

n

)

wtedy i tylko wtedy, gdy a ¬ b.

Przykład 9 Mamy 2

n

O(n!) oraz n! O(n

n

)

.

Istotnie 2

n

¬ 2 · 1 · 2 · 3 · . . . · n = 2 · n!, bo ka˙zdy czynnik (poza pierwszym) w n! jest równy co

najmniej 2. Pokazuje to, ze 2

n

O(n!). Podobnie n! = 1 · 2 · 3 · . . . · n ¬ n · n · n · . . . · n = n

n

, bo

ka˙zdy czynnik w n! jest nie wi ˛ekszy ni˙z n.

Edward Szczypka

Matematyka Dyskretna

15 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Rz ˛

ad wielko ´sci - zadania

Zadanie 10 Pokaza´c, ˙ze:

3

n

O(n!)

n! /

O(2

n

)

n

n

/

O(n!)

log n O(

n)

log n O(

3

n)

Uogólnij, tak jak umiesz, powy˙zsze fakty.

Przykład 11 Czy

n O(

n

log n

)

P

n
i=1

i O(n)

P

n
i=1

i O(n

2

)

n

2

O(

P

n
i=1

i)

P

n
i=1

i

2

O(n

2

)

Edward Szczypka

Matematyka Dyskretna

16 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Zło˙zono ´s ´c algorytmów raz jeszcze

Do czego u˙zywamy "O du˙zego":

"O du˙ze" jest potrzebne do opisywania zło˙zono´sci algorytmów

by pomin ˛

a´c zb ˛edne (i trudne do policzenia. . . ) szczegóły i skupi´c si ˛e na rz ˛edzie

funkcji

zwykle wiec podajemy zło˙zono´s´c algorytmu za pomoc ˛

a "O du˙zego", najdokładniej jak

potrafimy

np. o algorytmie sumowania liczb powiemy, ze ma zło˙zono´s´c O(n) – a nie O(n

2

)

, cho´c to

tez byłaby prawda.

Przykłady:

najlepsze algorytmy sortowania maja zło˙zono´s´c O(n log n), gdzie n jest liczba
sortowanych elementów

popularne algorytmy sortowania – O(n

2

)

algorytm Floyda znajduj ˛

acy wszystkie najkrótsze ´scie˙zki w danym grafie maj ˛

acym n

wierzchołków – O(n

3

)

algorytm wyszukiwania elementu w posortowanej bazie danych zawieraj ˛

acej n elementów

– O(log n).

Edward Szczypka

Matematyka Dyskretna

17 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zło˙zono´s´c

Zło˙zono ´s ´c algorytmów raz jeszcze

Powszechnie uwa˙za si ˛e, ze praktycznie u˙zyteczne s ˛

a algorytmy o zło˙zono´sci

wielomianowej lub lepszej, np.:

log n,

3

n,

n, n, n log n, n

n, n

2

,

n

3

,

n

k

Algorytmy o zło˙zono´sci wykładniczej lub gorszej, np.: 2

n

,

n!, n

n

uwa˙za si ˛e za

niepraktyczne.

Czasem rozwa˙za si ˛e w praktyce (zwłaszcza w kryptografii przy łamaniu kodów) algorytmy
o zło˙zono´sci n

log n

, która nie jest wielomianowa, ale ro´snie znacznie wolniej ni˙z 2

n

.

Jeden z centralnych problemów współczesnej informatyki (P = NP) dotyczy zło˙zono´sci
algorytmów.

Zadanie 12 Udowodnij, ze n

log n

/

2O(n

k

)

, dla ˙zadnego stałego k , ale n

log n

O(a

n

)

dla

dowolnego a > 1.

Edward Szczypka

Matematyka Dyskretna

18 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

spis

Edward Szczypka

Matematyka Dyskretna

19 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Definicja rekurencyjna

nieformalnie – taka definicja, która odwołuje si ˛e do samej siebie

ale trzeba tu uwa˙za´c, by odwołanie było do instancji o mniejszej komplikacji

zwykle chodzi o ci ˛

ag ha

0

,

a

1

,

a

2

,

a

3

, . . .i

,

dla którego przepis na element a

n

wykorzystuje jaki(e)´s poprzedni(e) element(y):

a

n1

,

a

n2

, . . .

itp.

pocz ˛

atkowy element (lub kilka pocz ˛

atkowych) musza by´c zadane konkretnie

˙zeby było od czego zacz ˛

a´c

zwykle definicja rekurencyjna odwołuje si ˛e do jednego lub kilku poprzednich elementów,
ale mo˙ze tez odwoływa´c si ˛e do wszystkich poprzednich

Edward Szczypka

Matematyka Dyskretna

20 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Definicja rekurencyjna - przykłady

Przykład 13 Silnia, tzn. ci ˛

ag 0!, 1!, 2!, 3!, 4!, . . . mo˙ze by´c zadany rekurencyjnie jako:

s

0

=

1

s

n

=

n · s

n1

dla n > 1

Mo˙zna te˙z zada´c go jako:

s

0

=

1

s

n+1

= (

n + 1) · s

n

dla n > 0

Poniewa˙z pierwszy wyraz jest zadany, to mo˙zemy kolejno oblicza´c:

s

0

=

1

s

1

=

1 · s

0

=

1 · 1 = 1

s

2

=

2 · s

1

=

1 · 2 = 2

s

3

=

3 · s

2

=

3 · 2 = 6

s

4

=

4 · s

3

=

4 · 6 = 24

. . .

Edward Szczypka

Matematyka Dyskretna

21 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Definicja rekurencyjna - przykłady

Zadanie 14 Jaki ci ˛

ag jest zdefiniowany poprzez mała modyfikacje w definicji silni?

s

0

=

0

s

n

=

n · s

n1

dla n > 1

A co definiuj ˛

a nast ˛epuj ˛

ace okre´slenia:

s

0

=

1

2

s

n

=

n · s

n1

dla n > 1

oraz

s

0

=

1

s

n

=

n · s

n2

dla n > 2

W ostatnim przypadku wida´c, ze poniewa˙z odwołanie jest dwa wyrazy wstecz, to juz wyliczenie

pierwszego wyrazu s

1

staje si ˛e niemo˙zliwe.

Edward Szczypka

Matematyka Dyskretna

22 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Ci ˛

ag arytmetyczny

Przykład 15 W ci ˛

agu zadanym poprzez równania:

s

0

=

0

s

n

=

s

n1

+

2

dla n ­ 1

łatwo rozpozna´c kolejne liczby parzyste:

s

n

=

2n

Ogólnie ci ˛

ag zadany poprzez ustalenie a

0

oraz zadanie

a

n

=

a

n1

+

r

to tzw. ci ˛

ag arytmetyczny. Jego n-ty wyraz dany jest wzorem:

a

n

=

a

0

+

n · r

Aby to uzasadni´c, pokazujemy indukcyjnie, ze:

a

0

+

0 · r = a

0

jest rzeczywi´scie zerowym wyrazem ci ˛

agu

oraz

a

0

+

n · r = (a

0

+ (

n 1)r ) + r = a

n1

+

r = a

n

Edward Szczypka

Matematyka Dyskretna

23 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Ci ˛

ag geometryczny

Przykład 17 W ci ˛

agu zadanym poprzez równania:

s

0

=

1

s

n

=

2 · s

n1

dla n ­ 1

łatwo rozpozna´c kolejne pot ˛egi liczy 2:

s

n

=

2

n

Ogólnie ci ˛

ag zadany poprzez ustalenie a

0

oraz zadanie

a

n

=

q · a

n1

to tzw. ci ˛

ag geometryczny. Jego n-ty wyraz dany jest wzorem:

a

n

=

a

0

· q

n

Aby to uzasadni´c, pokazujemy indukcyjnie, ze:

a

0

· q

0

=

a

0

· 1 = a

0

jest rzeczywi´scie zerowym wyrazem ci ˛

agu

oraz

a

0

· q

n

= (

a

0

· q

n1

) ·

q = a

n1

· q = a

n

Edward Szczypka

Matematyka Dyskretna

24 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Wie˙za Hanoi

Zadanie 18 (E.Lucas, 1883) U zarania czasu Bóg umie´scił 64 złote kr ˛

a˙zki na jednej z trzech

diamentowych iglic tak, ze kr ˛

a˙zki wy˙zej umieszczone miały mniejsze promienie.

Nast ˛epnie Bóg polecił grupie mnichów przeło˙zenie tych kr ˛

a˙zków na trzecia iglice (C), ale tak by:

w jednym ruchu przenosi´c tylko jeden kr ˛

a˙zek,

kr ˛

a˙zek wi ˛ekszy nigdy nie mo˙ze le˙ze´c na kr ˛

a˙zku mniejszym,

mo˙zna posługiwa´c si ˛e iglica B.

Mnisi pracuj ˛

a od zarania dziejów dzie ´n i noc . . . Ile czasu im to zajmie?

Edward Szczypka

Matematyka Dyskretna

25 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Wie˙ze Hanoi -cd

Aby obliczy´c wystarczaj ˛

ac ˛

a ilo´s´c ruchów do wykonania zadania, zanalizujmy najpierw małe

przypadki:
Łatwo zauwa˙zy´c, ze dla 1 kr ˛

a˙zka potrzebny jest jeden ruch: A −→ C

Podobnie dla dwu kr ˛

a˙zków mo˙zemy post ˛

api´c: A −→ B, A −→ C, B −→ C

Przy 3 kr ˛

a˙zkach post ˛epujemy tak:

najpierw przenosimy dwa górne kr ˛

a˙zki na iglice B posługuj ˛

ac si ˛e iglica C:

A −→ C, A −→ B, C −→ B

przenosimy najwi ˛ekszy kr ˛

a˙zek z A na C: A −→ C

przenosimy kr ˛

a˙zki z B na C posługuj ˛

ac si ˛e iglic ˛

a A: B −→ A, B −→ C, A −→ C

co pokazuje, ze wystarcza tu 7 ruchów. Czy juz wiesz jak rozwi ˛

aza´c to zadanie w ogólno´sci (dla

n kr ˛

a˙zków)?

Edward Szczypka

Matematyka Dyskretna

26 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Mamy wiec równanie rekurencyjne

H

1

=

1

H

n

=

2 · H

n1

+

1

dla n > 2

bardzo podobne do ci ˛

agu geometrycznego.

Mo˙zemy policzy´c kilka jego wyrazów:

1, 3, 7, 15, 31, 63, 127, . . .

i rozpozna´c w nim ci ˛

ag pot ˛eg dwójki zmniejszonych o 1.

Ale czy rzeczywi´scie H

n

=

2

n

1?

I znów, aby si ˛e upewni´c, ˙ze nasze odgadni ˛ecie było poprawne, sprawdzamy indukcyjnie, ˙ze:

2 · H

n1

+

1 = 2 · (2

n1

1) + 1 = 2 · 2

n1

2 + 1 = 2

n

1 = H

n

co oznacza, ze rzeczywi´scie ci ˛

ag 2

n

1 spełnia równanie rekurencyjne, którym zadany jest ci ˛

ag

H

n

.

A wiec H

64

=

2

64

1 100 000 000 000 000 000 000, co przy przenoszeniu jednego kr ˛

a˙zka na

sekund ˛e zajmie ponad 3 000 000 000 000 a przenosz ˛

ac te kr ˛

a˙zki "komputerem" 3GHz potrzeba

b ˛edzie i tak ponad tysi ˛

ac lat . . .

Edward Szczypka

Matematyka Dyskretna

27 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Wie˙ze Hanoi - cd

Co zrobi´c z funkcj ˛

a/ci ˛

agiem zadanym za pomoc ˛

a definicji rekurencyjnej:

próbowa´c znale´z´c definicje lub algorytm nierekurencyjny – mo˙ze si ˛e okaza´c
efektywniejszy w obliczeniach

oblicza´c za pomoc ˛

a programu rekurencyjnego

ale wtedy nie wida´c wprost jaka zło˙zono´s´c obliczeniowa ma taki program/procedura.

Jak znale´z´c definicje nierekurencyjna:

znajdowanie nierekurencyjnej definicji dla ci ˛

agu zadanego rekurencyjnie to rozwi ˛

azywanie

równania rekurencyjnego,

jest to w ogólno´sci trudny problem

cz ˛esto nie ma ˙zadnej rozs ˛

adnej definicji nierekurencyjnej

istniej ˛

a metody rozwi ˛

azywania równa ´n rekurencyjnych, ale tylko dla pewnych

szczególnych rodzajów

czasem mo˙zna spróbowa´c odgadn ˛

a´c definicje nierekurencyjna i nast ˛epnie udowodni´c, ˙ze

rzeczywi´scie opisuje ona ten sam ci ˛

ag.

Taki dowód robi si ˛e za pomoc ˛

a indukcji.

Edward Szczypka

Matematyka Dyskretna

28 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Ci ˛

ag Fibonacci’ego

Ci ˛

ag Fibonacciñego zadany nast ˛epuj ˛

aco:

f

0

=

1

f

1

=

1

f

n

=

f

n1

+

f

n2

dla n > 2

a jego pierwsze wyrazy to:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, . . .

Jak odgadnac wzór na ogólny wyraz ci ˛

agu?

Je´sli nie mo˙zna odgadn ˛

a´c, to jak oszacowa´c szybko´s´c wzrostu tego ci ˛

agu?

Czy ro´snie on wielomianowo czy raczej wykładniczo?

Pierwsze pytanie – póki co – wydaje si ˛e do´s´c beznadziejne.

Edward Szczypka

Matematyka Dyskretna

29 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Ci ˛

ag Fibonacci’ego – szacowanie wzrostu

Czy f

n

ro´snie wielomianowo? tzn. czy f

n

O(n

k

)

? Zauwa˙zmy, ˙ze dla ci ˛

agu an zachowuj ˛

acego

si ˛e jak wielomian stopnia k , nowo zdefiniowany ci ˛

ag:

a

0

n

=

a

n+1

a

n

zachowuje si ˛e jak (n + 1)

k

n

k

– wielomian stopnia k 1.

podobnie ci ˛

ag a

00

dany przez

a

00

n

=

a

0
n+1

a

0

n

zachowuje si ˛e jak wielomian stopnia k 2, i post ˛epuj ˛

ac tak dalej, otrzymaliby´smy, ˙ze ci ˛

ag ró˙znic

kolejnych wyrazów w

a

(

i)

n

=

a

(

i1)

n+1

a

(

i1)

n

zachowuje si ˛e jak wielomian stopnia k i.

Ostatecznie, gdyby ci ˛

ag a

n

zachowywał si ˛e jak wielomian stopnia k to ci ˛

ag a

(

k )

n

byłby stały.

A jak wygl ˛

adaj ˛

a takie ci ˛

agi ró˙znic dla ci ˛

agu Fibonacciego?

Edward Szczypka

Matematyka Dyskretna

30 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Ci ˛

ag Fibonacci’ego – szacowanie wzrostu

Badaj ˛

ac kolejne ci ˛

agi ró˙znic wywiedzione z Ciagu Fibonacciñego dostajemy:

f

0

n

=

f

n+1

f

n

= (

f

n

+

f

n1

)

f

n1

czyli

f

n

f

0

f

1

f

2

f

4

f

4

f

5

f

6

f

7

f

8

. . .

f

0

n

f

0

f

1

f

2

f

4

f

4

f

5

f

6

f

7

. . .

f

00

n

f

0

f

1

f

2

f

4

f

4

f

5

f

6

. . .

f

(

3)

n

f

0

f

1

f

2

f

4

f

4

f

5

. . .

.

.

.

i widzimy, ze ci ˛

ag ten odradza si ˛e sam z siebie

nigdy tym samym nie prowadz ˛

ac do ci ˛

agu stałego.

Nie jest to ´scisły dowód, ze f

n

nie mo˙ze by´c rz ˛edu O(n

k

)

.

Sugeruje jednak taka mo˙zliwo´s´c.

Mo˙ze wiec 2

n

O(f

n

)

lub cho´cby a

n

O(f

n

)

dla pewnego a > 1?

Edward Szczypka

Matematyka Dyskretna

31 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Spróbujmy pokaza´c, ˙ze 2

n

O(f

n

)

tzn., 2

n

¬ c · f

n

.

Dowód taki indukcyjnie szedłby nast ˛epuj ˛

aco:

c · f

n

=

c · f

n1

+

c · f

n2

>

2

n1

+

2

n2

=

2

n2

(

2 + 1) = 3 · 2

n2

=

3

4

· 2

n

a chcieliby´smy, by c · f

n

>

2

n

. Mo˙ze wiec f

n

nie ro´snie tak szybko jak 2

n

, a raczej jak a

n

dla

jakiego´s 1 < a < 2?
Pojawiaj ˛

aca si ˛e liczba 3 sugeruje, ze mo˙ze a =

3
2

byłoby dobrym wyborem?

Sprawdzamy

c · f

n

=

c · f

n1

+

c · f

n2

­

3

2

n1

+

3

2

n2

=

3

n1

2

n1

+

3

n2

2

n2

=

3

n1

+

2 · 3

n2

2

n1

=

5 · 3

n2

2

n1

Gdyby wiec

5·3

n2

2

n1

­

3
2

n

, to mogliby´smy zako ´nczy´c dowód naszego przypuszczenia, ˙ze

3
2

n

O(f

n

)

z sukcesem. Po˙z ˛

adana nierówno´s´c:

5·

n2

2

n1

­

3

n

2

n

redukuje si ˛e wszak˙ze do równowa˙znej jej, prawdziwej nierówno´sci:

5

1

­

3

2

2

=

9

2

co ko ´nczy dowód.

Edward Szczypka

Matematyka Dyskretna

32 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Ci ˛

ag Fibonacci’ego – szacowanie wzrostu

Spróbujmy rozwi ˛

aza´c równanie ci ˛

agu Fibonacciñego. Chwilowo zaniedbamy ile wynosz ˛

a

pocz ˛

atkowe wyrazy f

0

i f

1

i skupimy si ˛e na wzorze:

f

n

=

f

n1

+

f

n2

Przypu´s´cmy przez chwile, ze rozwi ˛

azaniem tego równania jest jaki´s ci ˛

ag geometryczny c · x

n

.

Wtedy

c · x

n

=

c · x

n1

+

c · x

n2

co, przy zało˙zeniu, ze c, x 6= 0 pozwala na wydzielenie przez c · x

n2

i doprowadza do równania

kwadratowego:

x

2

=

x + 1

które ma dwa rozwi ˛

azania:

x

1

=

1 +

5

2

i x

2

=

1

5

2

Edward Szczypka

Matematyka Dyskretna

33 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Który wiec z ci ˛

agów miałby by´c szukanym ci ˛

agiem Fibonacciego?

Zauwa˙zmy, ˙ze gdy ci ˛

agi x

n

i y

n

nadaj ˛

a si ˛e na rozwi ˛

azania, to i ci ˛

ag c

1

· x

n

+

c

2

· y

n

nadaje si ˛e na

takie rozwi ˛

azanie i to przy zupełnie dowolnych stałych c

1

,

c

2

(ich dokładne ustalenie, zale˙ze´c

b ˛edzie od tymczasowo zaniedbanych warto´sci wyrazów pocz ˛

atkowych).

A zatem naszym rozwi ˛

azaniem mo˙ze by´c:

f

n

=

c

1

· x

n

1

+

c

2

x

n

2

Aby wyznaczy´c stałe c

1

,

c

2

zauwa˙zmy, ze musz ˛

a one spełnia´c układ równa ´n:

f

0

=

c

1

+

c

2

f

1

=

c

1

· x

1

+

c

2

· x

2

co po rozwi ˛

azaniu daje:

c

1

=

f

1

f

0

x

2

x

1

x

2

=

1

1

5

2

1+

5

2

1

5

2

=

1

5

1 +

5

2

c

2

=

f

1

f

0

x

1

x

2

x

1

=

1

1+

5

2

1

5

2

1+

5

2

=

1

5

1

5

2

i ostatecznie

f

n

=

1

5

"

1 +

5

2

n+1

1

5

2

n+1

#

Edward Szczypka

Matematyka Dyskretna

34 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Ci ˛

ag Fibonacciego – szacowanie wzrostu

Zadanie 18 Zweryfikuj, ˙ze

f

n

=

1

5

"

1 +

5

2

n+1

1

5

2

n+1

#

jest ci ˛

agiem Fibonacciego.

Zadanie 19 Rozwi ˛

a˙z równanie rekurencyjne:

s

0

=

3

s

1

=

3

s

n

=

s

n1

+

2s

n2

poprzez rozwi ˛

azanie równania kwadratowego x

2

=

x + 2, a nast ˛epnie wyznaczenie

odpowiednich stałych c

1

,

c

2

.

Edward Szczypka

Matematyka Dyskretna

35 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Aby rozwi ˛

aza´c równanie rekurencyjne

s

n

=

a · s

n1

+

b · s

n2

rozwi ˛

azujemy równanie kwadratowe

x

2

=

a · x + b

i je´sli ma ono dwa pierwiastki x

1

,

x

2

, to rozwi ˛

azaniem jest

s

n

=

c

1

· x

n

1

+

c

2

· x

n

2

ze stałymi

c

1

=

s

1

s

0

x

2

x

1

x

2

c

2

=

s

1

s

0

x

1

x

2

x

1

Gdy równanie x

2

=

ax + b ma tylko jeden pierwiastek x

0

(podwójny, gdy a

2

=

4b), to

rozwi ˛

azaniem jest

s

n

=

c

1

· x

n

0

+

c

2

· n · x

n

ze stałymi wyznaczonymi, jak poprzednio, poprzez dwa pierwsze wyrazy pocz ˛

atkowe:

c

1

=

s

0

c

2

=

s

1

s

0

x

0

x

0

Edward Szczypka

Matematyka Dyskretna

36 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Definicja Rekurencyjna

Przykład 19 A co si ˛e dzieje je´sli równanie x

2

=

ax + b nie ma rozwi ˛

aza ´n?

Np. dla ciagu g

n

=

g

n1

g

n2

.

Przecie˙z, gdy ustalimy dwa pierwsze wyrazy pocz ˛

atkowe np. g

0

=

2 i g

2

=

3 dostaniemy ci ˛

ag:

3, 5, 2, −3, −5, −2, 3, 5, 2, −3, −5, −2, 3, 5, 2, −3, −5, −2, 3, 5, 2, . . .

W istocie równanie x

2

=

ax + b ma wtedy dwa rozwi ˛

azania w´sród liczb zespolonych, i mo˙zemy

post ˛epowa´c analogicznie jak w przypadku dwu rozwi ˛

aza ´n rzeczywistych.

Zadanie 20 Rozwi ˛

a˙z równanie rekurencyjne

s

0

=

1

s

1

=

2

s

n

=

2s

n1

s

n2

Czy rozwi ˛

azanie tez cechuje si ˛e wzrostem wykładniczym?

Zadanie 21 Rozwi ˛

a˙z równanie rekurencyjne

s

0

=

1

s

1

=

1

s

n

=

s

n1

2 · s

n2

Czy rozwi ˛

azanie ma wzrost wykładniczy? a mo˙ze jest okresowe jak w przykładzie 19?

Edward Szczypka

Matematyka Dyskretna

37 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zliczanie

spis

Edward Szczypka

Matematyka Dyskretna

38 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zliczanie

Proste zasady zliczania

Zasada nr 1:

Je´sli zbiory A i B s ˛

a rozł ˛

aczne, to kA Bk = kAk + kBk

Ta zasada pozwala rozpatrywa´c osobno i nast ˛epnie doda´c wszelkie odr ˛ebne przypadki.

Zasada nr 2:

Dla dowolnych zbiorów A i B mamy kA × Bk = kAk · kBk.

Ta zasada pozwala zlicza´c pary (zestawienia) niezale˙znych obiektów

Edward Szczypka

Matematyka Dyskretna

39 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zliczanie

Proste zasady zliczania

Przykład 24 W pewnym niewielkim ksi ˛estwie tablice rejestracyjne zawieraj ˛

a zawsze jedna liter ˛e i

jedna cyfr ˛e.
Liter jest 26, cyfr jest 10.

Zgodnie z zasada nr 2 liczba mo˙zliwych tablic rejestracyjnych to 26 · 10 = 260.

Przykład 25: Niewielkie ksi ˛estwo nieco si ˛e rozrosło i oprócz tablic takich, jak opisano wcze´sniej,
s ˛

a potrzebne jeszcze tablice zawieraj ˛

ace dwie litery i dwie cyfry.

Zgodnie z zasada nr 1 rozpatrujemy osobno dwa przypadki:
tablice typu LC oraz tablice typu LLCC.
Dla przypadku LC mamy 26 · 10 = 260 mo˙zliwych tablic.
Dla przypadku LLCC mamy 26 · 26 · 10 · 10 = 67600 mo˙zliwych tablic.

Zgodnie z zasada nr 1 mamy razem 260 + 67600 = 67860 mo˙zliwych tablic. Tu wa˙zne jest to, ze

owe dwa przypadki nie zaz ˛ebiaj ˛

a si ˛e, tzn. ˙zadna tablica typu LC nie jest tablica typu LLCC.

Edward Szczypka

Matematyka Dyskretna

40 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zliczanie

Zliczanie funkcji

Ile jest funkcji

ze zbioru k -elementowego X = {x

1

,

x

2

, . . . ,

x

k

}

do zbioru n-elementowego Y = {y

1

,

y

2

, . . . ,

y

n

}?

Liczymy sposoby przyporzadkowania:

elementowi x

1

mo˙zemy przyporz ˛

adkowa´c jeden z elementów zbioru Y – na n sposobów

elementowi x

2

mo˙zemy przyporz ˛

adkowa´c jeden z elementów zbioru Y – na n sposobów

. . .

elementowi x

k

mo˙zemy przyporz ˛

adkowa´c jeden z elementów zbioru Y – na n sposobów

Zatem, korzystaj ˛

ac z Zasady nr 1, widzimy ze wszystkich takich przyporz ˛

adkowa ´n jest

n · n · . . . · n = n

k

.

Ka˙zda funkcje postaci X −→ Y , mo˙zemy uto˙zsami´c z kX k = k elementowym ci ˛

agiem, którego

wyrazami s ˛

a elementy zbioru Y , a zatem z elementem produktu X × X × . . . × X = X

k

.

Cz ˛esto zbiór funkcji postaci X −→ Y oznaczany jest jako Y

X

. Wtedy

kX

Y

k = kX k

kY k

Edward Szczypka

Matematyka Dyskretna

41 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zliczanie

Zliczanie funkcji

Przykład 27: Ile jest 8-mio cyfrowych tablic rejestracyjnych?

Ka˙zda taka tablica to ci ˛

ag 8-mio elementowy. A zatem liczb takich jest 10

8

.

Przykład 4 Ile jest 8-mio cyfrowych liczb naturalnych w zapisie dziesi ˛etnym?

Tu, w odró˙znieniu od poprzedniego przykładu, zabroniona jest sytuacja, w której na pocz ˛

atku

wyst ˛epuj ˛

a nieznacz ˛

ace zera

(chyba, ˙ze jest w ogóle tylko jedno zero, tzn. rozwa˙zamy liczb ˛e 0).

A zatem 10

8

to ilo´s´c liczb co najwy˙zej 8-cyfrowych.

Spo´sród wszystkich liczb co najwy˙zej 8-mio cyfrowych musimy wyrzuci´c te, które maja co
najwy˙zej 7 cyfr i dostaniemy wtedy,

˙ze liczb o dokładnie 8-miu cyfrach jest

10

8

10

7

= (

10 1) · 10

7

=

9 · 10

7

.

Edward Szczypka

Matematyka Dyskretna

42 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zliczanie

Zliczanie bijekcji

Aby pomi ˛edzy dwoma zbiorami sko ´nczonymi istniała jakakolwiek bijekcja zbiory te musz ˛

a mie´c

tyle samo elementów.
Ile jest wobec tego bijekcji pomiedzy dwoma zbiorami n-elementowymi X = {x

1

,

x

2

, . . . ,

x

n

} i

Y = {y

1

,

y

2

, . . . ,

y

n

}?

Liczymy sposoby przyporz ˛

adkowania:

elementowi x

1

mo˙zemy przyporz ˛

adkowa´c jeden z elementów zbioru Y na n sposobów

elementowi x

2

mo˙zemy przyporz ˛

adkowa´c jeden z elementów zbioru Y na n + 1 sposobów

gdy˙z jeden element juz jest wykorzystany, a injektywno´s´c zabrania wykorzystania go
ponownie
elementowi x

3

mo˙zemy przyporz ˛

adkowa´c jeden z elementów zbioru Y na n 2 sposoby,

gdy˙z dwa elementy s ˛

a ju˙z wykorzystane, a injektywno´s´c zabrania . . .

. . .
elementowi x

n1

mo˙zemy przyporzadkowac jeden z elementów zbioru Y na 2 sposoby,

gdy˙z n 2 elementy zbioru Y zostały juz wykorzystane,
wreszcie dla elementu x

n

nie mamy juz wcale wyboru, mo˙zemy (i musimy)

przyporzadkowa´c mu pozostały, niewykorzystany jeden element, czyli jest tylko jeden taki
sposób

a zatem takich sposobów jest

n · (n 1) · (n 2) · . . . · 2 · 1

Edward Szczypka

Matematyka Dyskretna

43 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zliczanie

Zliczanie bijekcji cd (permutacje)

W szczególno´sci policzyli´smy liczb ˛e bijekcji zbioru X = {x

1

,

x

2

, . . . ,

x

n

} w siebie. Takie

auto-bijekcje nazywamy permutacjami zbioru X .

Niech n! oznacza liczb ˛e permutacji zbioru n-elementowego
Czy rzeczywi´scie policzyli´smy liczb ˛e permutacji ka˙zdego zbioru sko ´nczonego?
A co ze zbiorem pustym?

łatwo sprawdzi´c formalnie, ze

∅ ⊆ ∅ × ∅ jest nie tylko funkcj ˛

a : ∅ −→ ∅

ale i bijekcj ˛

a

i jest to jedyna bijekcja ∅ −→ ∅

A zatem

0! = 1

1! = 1

n! = 1 · 2 · 3 · . . . · (n 1) · n

wyra˙za liczb ˛e permutacji zbioru n-elementowego.

Edward Szczypka

Matematyka Dyskretna

44 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zliczanie

Zliczanie inijekcji (wariacji bez powtórze ´

n)

Ile jest injekcji

ze zbioru k-elementowego X = {x

1

,

x

2

, . . . ,

x

k

}

do zbioru n-elementowego Y = {y

1

,

y

2

, . . . ,

y

n

}?

Liczymy sposoby przyporz ˛

adkowania:

elementowi x

1

mo˙zemy przyporz ˛

adkowa´c jeden z elementów zbioru Y na n sposobów

elementowi x

2

mo˙zemy przyporz ˛

adkowa´c jeden z elementów zbioru Y na n 1 sposobów,

gdy˙z jeden element ju˙z jest wykorzystany, a injektywno´s´c zabrania wykorzystania go
ponownie

elementowi x

3

mo˙zemy przyporz ˛

adkowa´c jeden z elementów zbioru Y na n 2 sposoby,

. . .

elementowi x

k

mo˙zemy przyporz ˛

adkowa´c jeden z elementów zbioru Y na n (k 1)

sposobów

Zatem, korzystaj ˛

ac z Zasady nr 2 widzimy, ze wszystkich takich przyporz ˛

adkowa ´n jest

n · (n 1) · (n 2) . . . · (n k + 2) · (n k + 1) =

n!

(

n k )!

Edward Szczypka

Matematyka Dyskretna

45 / 1

background image

Jagiellonian University

Theoretical

Computer Science

Zliczanie

Zliczanie funkcji

Zadanie 27 Na ka˙zde z 16-tu województw trzeba wydelegowa´c jednego z 20-tu specjalistów
zarz ˛

adzaj ˛

acych spisem powszechnym w tym województwie. Ka˙zde województwo ma mie´c

innego specjalist ˛e. Na ile sposobów mo˙zna to zrobi´c?

Zadanie 28 128-miu uczestnikom pewnej konferencji informatycznej przygotowano konta
komputerowe, gdzie ID s ˛

a 8-znakowe i utworzone wył ˛

acznie z liter a, b. Przydzielono je pó´zniej

losowo ˚

U na ile sposobów było to mo˙zliwe?

Zadanie 29 Ile jest 8-mio cyfrowych liczb (w systemie dzisi ˛etnym), w których ˙zadna cyfra si ˛e nie

powtarza?

Zadanie 30 Ile jest co najwy˙zej 10-cio cyfrowych liczb (w systemie dziesi ˛etnym), w których

˙zadna cyfra si ˛e nie powtarza?

Edward Szczypka

Matematyka Dyskretna

46 / 1


Document Outline


Wyszukiwarka

Podobne podstrony:
lecture 05
Feynman Lectures on Physics Volume 1 Chapter 05
lecture slides 05
Lecture 04 05 06 C Primer New
Lecture 04 05 06 C Primer New
IR Lecture1
podrecznik 2 18 03 05
regul praw stan wyjątk 05
uml LECTURE
lecture3 complexity introduction
05 Badanie diagnostyczneid 5649 ppt
Podstawy zarządzania wykład rozdział 05
05 Odwzorowanie podstawowych obiektów rysunkowych
05 Instrukcje warunkoweid 5533 ppt

więcej podobnych podstron