- Używając funkcji randint modułu random wygenerować 10 losowych list długości 10000, posortować je i wypisać.
- Napisać funkcję merge z wykładu w wersji iteracyjnej.
- 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)
- Napisz rekurencyjną funkcję rec_find(v, x), która zadanej 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.
- Napisz rekurencyjną funkcję rec_rev(s), która dla zadanego napisu s zwróci odwrócony napis s.
- 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:])
- (*) 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.