12.07.2015 Views

Schemat rekursji - Wydział Matematyki i Informatyki

Schemat rekursji - Wydział Matematyki i Informatyki

Schemat rekursji - Wydział Matematyki i Informatyki

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

(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ąć{b dla n ∈ N i m = 0h(n, m) =c dla n ∈ N i m > 0.(c) Odpowiedź. Wystarczy przyjąć⎧⎪⎨ b dla n ∈ N i m = 0h(n, m) = 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) dlakaż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 zmiennejm, czyli h(n, m) = g(m). Wówczas nasz warunek wygląda tak: g(0) = 1 i g(1) = 0 (wartościg(m) dla m > 1 mogą być dowolne). Weźmy zatemh(n, m) ={1 dla n ∈ N i m = 00 dla n ∈ N i m > 0.(b) Odpowiedź. Wystarczy przyjąć(c) Odpowiedź. Wystarczy przyjąćh(n, m) =⎧⎪⎨ 1 dla n ∈ N i m = 0h(n, m) = 2 dla n ∈ N i m = 1⎪⎩ 0 dla n ∈ N i m > 1.{m + 1 dla n ∈ N i m = 0, . . . , k − 10 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 <strong>rekursji</strong>.6 (a) Wskazówka. Indukcja.(b) Wskazówka. W przypadku n = 0 korzystamy z punktu (a). Dla n ≠ 0 dowodzimy,że plus(n, m) ≠ 0 stosując indukcję względem m. Pamiętamy, że następnik dowolnej liczbynaturalnej 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 dlawszystkich 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<strong>rekursji</strong>), więc zachodzi teza indukcji.5


Jeśli m ≠ 0, to m = succ(m ′ ) dla pewnego m ′ ∈ N. Wówczasplus(n, m) = plus(n, succ(m ′ )) = succ(plus(n, m ′ )).Skoro succ(plus(n, m ′ )) = succ(k), to plus(n, m ′ ) = k, więc plus(n, m ′ ) = plus(m ′ , n) na mocyzałożenia indukcyjnego. Zatemplus(n, m) = succ(plus(m ′ , n)) = plus(succ(m ′ ), n) = plus(m, n).Na mocy indukcji twierdzenie jest prawdziwe dla dowolnych m, n ∈ N.Uwaga. Skorzystaliśmy z własności succ(plus(m ′ , n)) = plus(succ(m ′ ), n). Należy ją udowodnićoddzielnie (również metodą indukcji).7 Wskazówka. Indukcja względem m.15 Odpowiedź.(a) x ↦→ 1,(b) x ↦→ x + 3,(c) (x, y, z) ↦→ y + 1,(d) (x, y) ↦→ y.16 Odpowiedź.(a) f(x) = S(S(x)),(b) np. f(x, y, z)) = Z(U1 3 (x, y, z)),(c) np. f(x, y)) = S(S(S(Z(U1 2 (x, y))))).Piotr Jędrzejewicz, Ćwiczenia ze wstępu do matematyki dla informatyków, I rok informatyki, jesień 2002.<strong>Schemat</strong> <strong>rekursji</strong>, wersja trzecia, 12 II 2003.6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!