• Nie Znaleziono Wyników

Zad. 1. Udowodnij, że funkcje

N/A
N/A
Protected

Academic year: 2021

Share "Zad. 1. Udowodnij, że funkcje"

Copied!
2
0
0

Pełen tekst

(1)

Lista zadań z matematycznych podstaw informatyki nr 2.

Zadania 1 – 4 to raczej uzupełnienie przerobionego materiału.

Zad. 1. Udowodnij, że funkcje

f (n) = część całkowita n oraz

g(n) = część całkowita log

2

(n + 1) są pierwotnie rekurencyjne.

Zad. 2. Niech f będzie rosnącą funkcją pierwotnie rekurencyjną taką, że f (0) = 0.

Pokaż, że funkcja

g(n) = max{k : f (k) ¬ n}

jest pierwotnie rekurencyjna.

Zad. 3. Udowodnij, że następujące funkcje są pierwotnie rekurencyjne:

1) hx

1

, . . . , x

n

i = µy (β(y, 0) = n ∧ ∀

i<n

β(y, i + 1) = x

i

), gdzie β oznacza zwy- kła funkcję G¨ odla, przyporządkowująca liczbom x

1

, . . . , x

n

kod ciągu (x

1

, . . . , x

n

).

2) conc(a, b) = µx



β(x, 0) = lh(a) + lh(b) ∧ ∀

i<lh(a)

(x)

i

= (a)

i

∧ ∀

i<lh(b)

(x)

lh(a)+i

= (b)

i

, 3) c(a, b) = µx



β(x, 0) = lh(a) + 1 ∧ ∀

i<lh(a)

(x)

i

= (a)

i

∧ (x)

lh(a)

= b



,

4) hf i(n, ~ x) = hf (0, ~ x), f (1, ~ x), . . . , f (n − 1, ~ x)i przy założeniu, że f jest funkcją pierwotnie rekurencyjną (definicja hf i nie wygląda na poprawną, ale mam nadzieję, że jest zrozumiała).

Zad. 4. W tym zadaniu funkcją β G¨ odla nazywamy całkowitą funkcję rekurencyjną β : N

2

→ N taką, że

1) β(a, i) ¬ a − 1 dla wszystkich a, i,

2) dla każdego ciągu a

0

, . . . , a

k−1

istnieje liczba a taka, że równości β(a, i) = a

i

są prawdziwe dla wszystkich i < k.

Niech f oznacza zwykła funkcję pary: f (n, m) = (n + m)(n + m + 1)

2 + n.

Funkcję β G¨ odla można zdefiniować tak, aby

β(f (a

0

, f (a

1

, f (a

2

, f (. . . , a

n

) . . .))), i) = a

i

dla i = 1, . . . , n. Podaj definicję takiej funkcji β i udowodnij, że spełnia lemat G¨ odla i jest funkcją pierwotnie rekurencyjną. Pokaż też, że związane z nią funkcje lh, (·)

·

oraz h·, . . . , ·i są pierwtnie rekurencyjne.

Zad. 5. Wyobraź sobie bardziej skomplikowany schemat rekursji (np. funkcję przy- porządkowującą formule liczbę wolnych wystąpień zmiennych w tej formule). Po- każ, że tak definiowane funkcje można zdefiniować za pomocą rekursji prostej. Idea rozwiązania: przypuśćmy, że za pomocą tego typu rekursji definiujemy funkcję f . Najpierw zdefiniuj przez rekursję prostą funkcję F przyporządkowującą liczbie n numer (kod) ciągu f (0), f (1), . . . , f (n − 1). Następnie podaj odpowiednią definicję f wykorzystującą funkcję F .

Zad. 6. Przyjmijmy, że

M (n, 1, 3) = n

n

, M (n, 1, p+1) = M (n, n, p), M (n, m+1, p) = M (M (n, 1, p), m, p).

Udowodnij, że te trzy równości definiują funkcję rekurencyjną. Znajdź dziedzinę tej funkcji. Czy jest to funkcja pierwotnie rekurencyjna (dziedzinę można poprawić!)?

Funkcja ta bywa nazywana funkcją Steinhausa - Mosera.

(2)

Zad. 7. Rozważmy następujący algorytm:

Dane: m ­ 1 oraz n ­ 1;

var L, i, p : positive integer, T : array [1..m] of non negative integer;

function next(var p) : boolean;

begin p := 1;

while p ¬ m and T [p] = 0 do p := p + 1;

next := p ¬ m end;

begin

L := n; for i := 1 to m − 1 do T [i] := 0; T [m] := 1;

while next(p) do

for i := 1 to p − 1 do T [i] := L;

T [p] := T [p] − 1; L := L + 1 write(L)

end.

Dla jakich m i n podany algorytm kończy pracę? Jeżeli coś liczy, to oceń jego złożoność rozumianą na przykład jako liczba wykonań głównej pętli while.

Zad. 8. Przyjmijmy, że

U (n, a, x) =





a jeżeli (n)

0

= 0,

a · x + (n)

1

jeżeli (n)

0

= 1, U ((n)

2

, U ((n)

1

, a, x), x) jeżeli (n)

0

> 1.

Udowodnij,że

1) U jest funkcją pierwotnie rekurencyjną,

2) dla dowolnego wielomianu w o współczynnikach naturalnych istnieją n i a takie, że

U (n, a, x) = w(x) dla wszystkich x,

3) pewna funkcja pierwotnie rekurencyjna nie jest wielomianem o współczyn-

nikach naturalnych i zrób to metodą przekątniową.

Cytaty

Powiązane dokumenty

[r]

Przypomnij dowód równoważności definicji ciągłości Cauchy’ego i Heinego i zaadaptuj go do przypadku jednostajnej

Prostokąt został podzielony na mniejsze prostokąty, z których każdy ma co najmniej jeden bok o długości będącej liczbą całkowitą. Wykaż, że przynajmniej jeden bok dużego

Ruch polega na wybraniu dwóch sąsiadujących w wierszu lub kolumnie pionów, a następnie przeskoczeniem jednym z nich przez drugi i zdjęciem drugiego.. Ruch wolno wykonać tylko o

W jednym rzędzie ustawiono n słupków monet tak, że między każdymi dwoma słupkami tej samej wysokości znajduje się co najmniej jeden słupek wyższy.. Najwyższy słupek zawiera

Udowodnij, że wówczas ist- nieje wśród nich taki matematyk, że średnia liczba przyjaciół jego przyjaciół jest nie mniejsza od średniej liczby przyjaciół całego

Udowodnij, że możemy tak położyć drugiego tetrisa, aby suma liczb w polach, które on przykrył, była nieujemna...

Udowodnij, że możemy tak położyć drugiego tetrisa, aby suma liczb w polach, które on przykrył, była nieujemna...