- 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.
Hint: Wykorzystaj dodawanie napisów s1+s2 oraz to, że napisy można indeksować podobnie jak listy. - Napisz rekurencyjną funkcję rec_pal(s) zwracającą True, gdy s jest palindromem. W przeciwnym przypadku funkcja zwraca wartość False.
- Napisz rekurencyjną funkcję rec_find(v, x), która dla zadanej posortowanej rosnąco listy liczb v zwróci wartość True, gdy element x występuje na liście v. W przeciwnym przypadku funkcja zwraca wartość False. Zakładamy, że lista v jest posortowana rosnąco — nie trzeba tego sprawdzać.
- Napisać funkcję merge z wykładu w wersji iteracyjnej.
-
(★) Zdefinujmy ciąg Fibonacciego w następujący sposób:
- f(0) = 0, f(1) = f(2) = 1 gdy n <= 2
- f(n) = f(n-1) + f(n-2) w p.p.
Wypisz drzewo wywołań rekurencyjnych f(n). Za pomocą znaków | (pipe) połącz wywołania rekurencyjne z wywołującą funkcją (f(n-1) oraz f(n-2) z f(n)), a odgałęzienia do sumowanych wyników zaznacz znakiem + (plus). Przykłady pokazują jak wygląda wyjście dla różnych wartości n.
-
(★) Podziałem liczby naturalnej n na k części nazywamy ciąg k liczb naturalnych sumujących się do n. Napisz funkcję p(n,k), która dla danej liczby naturalnej n znajdzie liczbę podziałów liczby n na k części.
Category: teaching
APB Wykład 3. – przeglądarki genomów
WDI Wykład 3 – Funkcje rekurencyjne
WDI – zajęcia 2
Zadania na laboratorium nr 2:
- Zaimplementuj funkcję kalkulator(d, a, b), która przyjmuje jako parametr rodzaj wykonywanego działania i dwa parametry liczbowe i zwraca wynik w postaci liczbowej. Można założyć, że działanie jest pojedynczym znakiem ze zbioru {“+”, “-“, “*”, “/”}. Przykładowo kalkulator(“+”, 2, 2) ma zwrócić 4.
- Spróbuj rozwiązać to zadanie używając funkcji eval.
- Zaimplementuj funkcję double_sum.
- Znajdź sumę liczb naturalnych mniejszych niż 1000, które są wielokrotnościami 3 lub 5.
- Napisz iteracyjną funkcję fib(n), która dla zadanej liczby całkowitej dodatniej n zwróci n-ty wyraz ciągu Fibonacciego.
- Napisz funkcję palindrom(s), która dla zadanego ciągu znaków s sprawdzi, czy napis ten jest palindromem.
- (★) Dana jest lista N liczb. Czy istnieje liczba występująca na tej liście więcej niż N/2 razy?
- (★) W przestrzeni rozmieszczono n punktów w taki sposób, że żadne trzy z nich nie są współliniowe. Następnie każdą parę tych punktów połączono odcinkiem i każdy odcinek pokolorowano na czarno albo na czerwono. Trójkątem jednobarwnym nazwiemy każdy trójkąt mający wszystkie trzy boki tego samego koloru. Dane jest n = 6 punktów oraz lista czerwonych odcinków wyrażona za pomocą listy incydencji: l = [[1,3,5],[0,2,4],[1,3,5],[0,2,4],[1,3,5],[0,2,4]]. Indeks listy l oznacza punkt, a pod danym indeksem listy l znajduje się lista punktów z którymi ten punkt tworzy odcinek. Na przykład punkt o indeksie 0 tworzy odcinki z punktami o indeksach: 1,3 oraz 5 (l[0] = [1,3,5]). Znajdź liczbę wszystkich trójkątów jednobarwnych.
WDI – wykład 2
APB – wykład 2.
WDI – zajęcia 1
Zadania rozgrzewkowe: podstawowe polecenia w Bashu i operacje arytmetyczne w Pythonie
- Stwórz katalog o nazwie
hello.
Stwórz w nim plik o nazwiehello.py
. Umieść w nim program w Pythonie, który wypisujeHello world!
- Uruchom program
hello.py
używając interpretera Pythona - Skopiuj katalog
hello.
Wyświetl zawartość nowego katalogu. W nowo powstałym katalogu zmień nazwę plikuhello.py
natesty.py
. Napisz w nim program, który wypisze wyniki działań: 123456789 + 1234567890, 2015*2016, 5/10/2015, 5.0/10/2015, 1/2, (2015*2016) do potęgi 8, jak również wynik pierwszego działania z powyższej listy minus wynik ostatniego działania (użyj zmiennych).
Zadania:
- Zadanie z testu kompetencji: Napisz funkcję
parsum(A)
, która policzy sumę parzystych elementów listy. Pożądane działanie funkcji ilustrują przykłady:
parsum([1,4,2,6,5,3,1])
zwraca 12
parsum([])
zwraca 0
parsum([3,2,2,4])
zwraca 8 - (*) Napisz funkcję
pierwiastki(a,b,c)
, która zwraca pierwiastki wielomianu kwadratowegoax^2 + bx + c
Wykład 1. z APB
WDI wykład 1.
Etykiety do zadania 2
Witam,
Przypominam, że w czwartek widzimy się na prezentacjach Państwa wyników. Dane nt. rzeczywistych etykiet pacjentów są w tym pliku.
Proszę pamiętać, że nawet najlepszy model nie może dać gwarancji 100% skutecznośći, ale też jeśli komuś wyszła zgodność na poziomie 5%, to warto poszukać błędu w analizach. Jeśli to ktoś zrobi do czwartku, to tym lepiej.