Zadania wg. P. Bednarza
- używając funkcji randint modułu random wygenerować 10 losowych list długości 10000, posortować i wypisać (Tutaj przyda się iteracyjna wersja merge)
- Co robi funkcja f?
def f(a, b): if b == 0: return 0 return a + f(a, b - 1)
- Co się stanie jeśli w powyższym przykładzie zmienimi znak + na *?
- Co zwracają funkcje e i o zdefiniowane poniżej?
def e(n): if n == 0: return True else: return o(n - 1) def o(n): if n == 0: return False else: return e(n - 1)
- Co zwracają funkcje take i skip zdefiniowane poniżej?
def take(l): if l == []: return [] else: return [l[0]] + skip(l[1:]) def skip(l): if l == []: return [] else: return take(l[1:])
- Napisz rekurencyjną funkcję rec_rev(s), która dla zadanego napisu s zwróci odwrócony napis s.
- Napisz rekurencyjną funkcję rec_find(v, x), która zadanego posortowanej listy v zwróci wartość True, gdy element x występuje na liście v. W przeciwnym przypadku funkcja zwraca wartość False.
- Napisz rekurencyjną funkcję rec_pal(s) zwracającą True, gdy s jest palindromem. W przeciwnym przypadku funkcja zwraca wartość False.
- Podziałem liczby naturalnej n nazwiemy ciąg liczb naturalnych sumujących się do n. Napisz rekurencyjną funkcję partition(n), która znajdzie wszystkie podziały liczby n.