• Nie Znaleziono Wyników

Schemat rekursji 1 Schemat rekursji dla funkcji jednej zmiennej

N/A
N/A
Protected

Academic year: 2021

Share "Schemat rekursji 1 Schemat rekursji dla funkcji jednej zmiennej"

Copied!
6
0
0

Pełen tekst

(1)

Schemat rekursji

1 Schemat rekursji dla funkcji jednej zmiennej

Dla dowolnej liczby naturalnej a i dowolnej funkcji h: N2 → N istnieje dokładnie jedna funkcja f : N → N spełniająca następujące warunki:

( f (0) = a

f (n + 1) = h(n, f (n)) dla każdego n ∈ N.

Mówimy, że funkcja f jest określona za pomocą schematu rekursji przez liczbę a i funkcję h.

Oczywiście argument funkcji f możemy oznaczać inną literą, np. x.

Zadanie 1 Jaką funkcję określa schemat rekursji, jeśli (a) h(n, m) = 0 dla n, m ∈ N,

(b) h(n, m) = m dla n, m ∈ N, (c) h(n, m) = n dla n, m ∈ N, (d) h(n, m) = succ(m) dla n, m ∈ N.

(e) h(n, m) = n + m dla n, m ∈ N.

Uwaga. Odnotujmy, że dla danych a i h funkcja f , spełniająca warunki schematu rekursji, jest określona jednoznacznie. Oznacza to, że jeśli pewna, odgadnięta przez nas, funkcja f spełnia te warunki, to jest funkcją określoną przez ten schemat rekursji.

Zadanie 2 Dane są liczby naturalne a, b, c, d. Podaj przykład funkcji h („prostszej” od f ), dla której za pomocą schematu rekursji otrzymamy funkcję

(a) f (n) =

( a dla n = 0 b dla n > 0,

(b) f (n) =

a dla n = 0 b dla n = 1 c dla n > 1,

(c) f (n) =

a dla n = 0 b dla n = 1 c dla n = 2 d dla n > 2.

Zadanie 3 Określ funkcję f : N → N za pomocą schematu rekursji:

(a) f (n) = 2n, (b) f (n) = 2n, (c) f (n) = n2,

(d) f (n) = n2+ 3n + 5.

Zadanie 4 Podaj przykład (możliwie najprostszej) funkcji h, dla której za pomocą schematu rekursji otrzymamy taką funkcję f , że f (n) jest równe reszcie z dzielenia n:

(a) przez 2, (b) przez 3,

(c) przez k, gdzie k jest daną liczbą naturalną.

(2)

2 Funkcje „plus” i „mult”

Funkcja plus: N2 → N jest określona za pomocą następującego schematu rekursji:

( plus(n, 0) = n dla dowolnego n ∈ N

plus(n, succ(m)) = succ(plus(n, m)) dla dowolnych n, m ∈ N.

Zadanie 5 Wykaż, że succ(n) = plus(n, succ(0)) dla każdego n ∈ N.

Uwaga. Istotą schematu rekursji jest określanie (definiowanie) nowych funkcji. Na przykład funkcję „plus” definiujemy mając tylko „succ”, a funkcję „mult” za pomocą „plus”.

Jeśli chcemy teraz udowodnić jakąś własność funkcji „plus”, to powinniśmy korzystać jedynie z powyższej definicji przez schemat rekursji oraz podstawowych własności liczb naturalnych (aksjomatów). Jedna z nich to zasada indukcji, dwie pozostałe dotyczą funkcji „succ” – jest ona różnowartościowa i 0 nie jest następnikiem żadnej liczby naturalnej.

W żadnym wypadku nie możemy się odwoływać do znanych własności dodawania. Dodawanie jest tu dopiero zdefiniowane i wszystko trzeba po kolei udowodnić.

Zadanie 6 Uzasadnij, że:

(a) plus(0, n) = n dla każdego n ∈ N;

(b) plus(n, m) = 0 wtedy i tylko wtedy, gdy (n, m) = (0, 0);

(c) plus(m, n) = plus(n, m) dla dowolnych m, n ∈ N.

Zadanie 7 Udowodnij, że plus(plus(k, l), m) = plus(k, plus(l, m)) dla dowolnych k, l, m ∈ N.

Funkcja mult: N2 → N jest określona za pomocą następującego schematu rekursji:

( mult(n, 0) = 0 dla dowolnego n ∈ N

mult(n, succ(m)) = plus(n, mult(n, m)) dla dowolnych n, m ∈ N.

Zadanie 8 Udowodnij, że mult(plus(k + l), m) = mult(plus(k, m), plus(l, m)) dla dowolnych k, l, m ∈ N.

Zadanie 9 Wprowadźmy oznaczenie 1 = succ(0). Wykaż, że mult(1, m) = m dla dowolnego m ∈ N.

Funkcja exp: N2 → N jest określona za pomocą następującego schematu rekursji:

( exp(n, 0) = 1 dla dowolnego n ∈ N

exp(n, succ(m)) = mult(n, exp(n, m)) dla dowolnych n, m ∈ N.

Zadanie 10 Udowodnij, że dla dowolnych k, l, m ∈ N zachodzą równości:

(a) exp(mult(x, y), z) = mult(exp(x, z), exp(y, z)), (b) exp(x, mult(y, z)) = exp(exp(x, y), z).

(3)

3 Schemat rekursji dla funkcji wielu zmiennych

Dla dowolnej funkcji g: N → N i dowolnej funkcji h: N3 → N istnieje dokładnie jedna funkcja f : N2 → N spełniająca następujące warunki:

( f (n, 0) = g(n) dla każdego n ∈ N,

f (n, m + 1) = h(n, m, f (n, m)) dla dowolnych n, m ∈ N.

Zadanie 11 Jaką funkcję f określa schemat rekursji z danymi funkcjami g: N → N i h: N3→ N?

(a) g(n) = n, h(n, m, k) = k,

(b) g(n) = 0, h(n, m, k) = n + m + k, (c) g(n) = 2n, h(n, m, k) = k + 3.

Zadanie 12 Wypisz funkcje g(n) i h(n, m, k) występujące w schemacie rekursji określającym funkcje: „plus”, „mult”, „exp”.

Zadanie 13 Funkcje f1: N → N i f2: N → N są określone za pomocą schematu rekursji odpo- wiednio przez liczby a1 i a2 oraz funkcje h1: N2 → N i h2: N2 → N. Znajdź schemat rekursji dla funkcji f : N2→ N takiej, że:

(a) f (n, m) = f1(n) + f2(m) dla dowolnych n, m ∈ N, (b) f (n, m) = f1(n) · f2(m) dla dowolnych n, m ∈ N.

Następujący schemat rekursji:

( f (k, l, 0) = g(k, l) dla każdego n ∈ N, f (k, l, m + 1) = h(k, l, m, f (k, l, m)) dla dowolnych n, m ∈ N, określa funkcję f : N3 → N, gdy dane są funkcje g: N2 → N i h: N4 → N.

Zadanie 14 Określ za pomocą schematu rekursji funkcję f : N3 → N.

(a) f (k, l, m) = kl + lm + mk, (b) f (k, l, m) = klm + k + l + m, (c) f (k, l, m) = (k + l + m)2.

4 Funkcje pierwotnie rekurencyjne

Funkcjami pierwotnie (prymitywnie) rekurencyjnymi nazywamy funkcje:

Z: N → N, Z(x) = 0, S: N → N, S(x) = x + 1, Uin: Nn→ N, Uin(x1, . . . , xn) = xi, n > 1, 1 6 i 6 n,

oraz wszystkie funkcje, które można otrzymać z nich za pomocą składania funkcji i operatora rekursji:

( f (0, x1, . . . , xn) = g(x1, . . . , xn)

f (x0+ 1, x1, . . . , xn) = h(x0, x1, . . . , xn, f (x0, x1, . . . , xn)).

(4)

Zadanie 15 Wyznacz następujące złożenia funkcji:

(a) S(Z(x)), (b) S(S(S(x))), (c) S(U23(x, y, z)),

(d) U12(U22(x, y), U12(x, y)).

Zadanie 16 Podaną funkcję f przedstaw w postaci złożenia funkcji Z, S i Uin, n> 1, 1 6 i 6 n.

(a) f (x) = x + 2, (b) f (x, y, z) = 0, (c) f (x, y) = 3.

Zadanie 17 Wykaż, że następujące funkcje są pierwotnie rekurencyjne:

(a) f : N → N, f (n) = 2,

(b) f : N → N, f (n) = k, gdzie k jest daną liczbą naturalną, (c) f : N2→ N, f(m, n) = m + 1.

Zadanie 18 Uzasadnij pierwotną rekurencyjność funkcji f z zadań 2, 3 i 4.

Zadanie 19 Udowodnij, że następujące funkcje są pierwotnie rekurencyjne:

(a) f : N → N, f (n) = (−1)n+ 1, (b) f : N → N, f (n) = sinπ2n + 1.

Zadanie 20 Wykaż, że jeśli funkcja f : N2→ N jest pierwotnie rekurencyjna, to funkcja g: N2 N, g(x, y) = f (y, x) też jest pierwotnie rekurencyjna.

Zadanie 21 Udowodnij, że jeśli funkcje g: Nn−1 → N i h: Nn+1→ N są pierwotnie rekurencyjne, to funkcja określona za ich pomocą przez rekursję względem zmiennej xi

( f (x0, . . . , xi−1, 0, xi+1, . . . , xn) = g(x0, . . . , xi−1, xi+1, . . . , xn)

f (x0, . . . , xi−1, xi+ 1, xi+1, . . . , xn) = h(x0, . . . , xi, . . . , xn, f (x0, . . . , xi, . . . , xn)) jest też pierwotnie rekurencyjna.

Rozwiązania, wskazówki, odpowiedzi, komentarze

1 Odpowiedź. (a) f (n) =

( a dla n = 0 0 dla n > 0, (b) f (n) = a dla każdego n ∈ N,

(d) f (n) = n + a dla każdego n ∈ N.

2 Komentarz. Ktoś złośliwy mógłby tu podać przykład funkcji h(n, m) = f (n + 1), jako załatwiającej sprawę dla dowolnego f .

Schemat rekursji służy do określania bardziej skomplikowanych funkcji f przez prostsze funk- cje h lub po prostu nowych, jeszcze nieskontruowanych funkcji przez funkcje, które już skonstru- owaliśmy. Dlaczego tylko takie użycie schematu rekursji nas interesuje? Wystarczy spojrzeć na definicję funkcji pierwotnie (prymitywnie) rekurencyjnych.

(5)

(b) Rozwiązanie. Szukamy funkcji f takiej, że h(0, f (0)) = f (1) = b oraz h(n, f (n)) = f (n + 1) = c dla n > 0 (dokładniej: h(0, a) = b, h(1, b) = c oraz h(n, c) = c dla n > 1).

Wystarczy przyjąć

h(n, m) =

( b dla n ∈ N i m = 0 c dla n ∈ N i m > 0.

(c) Odpowiedź. Wystarczy przyjąć

h(n, m) =

b dla n ∈ N i m = 0 c dla n ∈ N i m = 1 d dla n ∈ N i m > 1.

4 Pamiętajmy o tym, że funkcja h nie jest określona jednoznacznie dla danej funkcji f .

(a) Rozwiązanie. Szukana funkcja h powinna spełniać warunek: h(n, f (n)) = f (n + 1) dla każdego n, czyli h(n, 0) = 1 dla n parzystych oraz h(n, 1) = 0 dla n nieparzystych.

Zauważmy, że wystarczy przyjąć funkcję h(n, m), której wartości zależą tylko od zmiennej m, czyli h(n, m) = g(m). Wówczas nasz warunek wygląda tak: g(0) = 1 i g(1) = 0 (wartości g(m) dla m > 1 mogą być dowolne). Weźmy zatem

h(n, m) =

( 1 dla n ∈ N i m = 0 0 dla n ∈ N i m > 0.

(b) Odpowiedź. Wystarczy przyjąć

h(n, m) =

1 dla n ∈ N i m = 0 2 dla n ∈ N i m = 1 0 dla n ∈ N i m > 1.

(c) Odpowiedź. Wystarczy przyjąć

h(n, m) =

( m + 1 dla n ∈ N i m = 0, . . . , k − 1 0 dla n ∈ N i m = k, k + 1, . . .

5 Wskazówka. Czemu jest równe plus(n, succ(0))? Spójrz na drugą linię schematu rekursji.

6 (a) Wskazówka. Indukcja.

(b) Wskazówka. W przypadku n = 0 korzystamy z punktu (a). Dla n 6= 0 dowodzimy, że plus(n, m) 6= 0 stosując indukcję względem m. Pamiętamy, że następnik dowolnej liczby naturalnej jest różny od 0.

(c) Rozwiązanie. Indukcja względem k = plus(n, m). Dla k = 0 mamy n = m = 0 (punkt b), więc plus(m, n) = plus(n, m).

Niech teraz k będzie dowolną liczbą naturalną. Załóżmy, że twierdzenie jest prawdziwe dla wszystkich par (n, m) takich, że plus(n, m) = k. Rozważmy dowolną parę (n, m) spełniającą warunek plus(n, m) = k + 1. Pokażemy, że plus(m, n) = plus(n, m).

Jeśli m = 0, to plus(m, n) = n (punkt a) oraz plus(n, m) = n (pierwsza linia schematu rekursji), więc zachodzi teza indukcji.

(6)

Jeśli m 6= 0, to m = succ(m0) dla pewnego m0 ∈ N. Wówczas

plus(n, m) = plus(n, succ(m0)) = succ(plus(n, m0)).

Skoro succ(plus(n, m0)) = succ(k), to plus(n, m0) = k, więc plus(n, m0) = plus(m0, n) na mocy założenia indukcyjnego. Zatem

plus(n, m) = succ(plus(m0, n)) = plus(succ(m0), n) = plus(m, n).

Na mocy indukcji twierdzenie jest prawdziwe dla dowolnych m, n ∈ N.

Uwaga. Skorzystaliśmy z własności succ(plus(m0, n)) = plus(succ(m0), n). Należy ją udowodnić oddzielnie (również metodą indukcji).

7 Wskazówka. Indukcja względem m.

15 Odpowiedź.

(a) x 7→ 1, (b) x 7→ x + 3, (c) (x, y, z) 7→ y + 1, (d) (x, y) 7→ y.

16 Odpowiedź.

(a) f (x) = S(S(x)),

(b) np. f (x, y, z)) = Z(U13(x, y, z)), (c) np. f (x, y)) = S(S(S(Z(U12(x, y))))).

Piotr Jędrzejewicz, Ćwiczenia ze wstępu do matematyki dla informatyków, I rok informatyki, jesień 2002.

Schemat rekursji, wersja trzecia, 12 II 2003.

Cytaty

Powiązane dokumenty