Last active
June 24, 2020 09:04
-
-
Save tlasica/5788de9820b698dee6312bc89a438983 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# fib(0) = 0 | |
# fib(1) = 1 | |
# fib(n) = fib(n-1) + fib(n-2) | |
fib_numbers = [0, 1] # dwie pierwsze liczby fib, czyli fib(0) i fib(1) | |
def fast_fib(n): | |
# jesli n jest mniejsze od liczby numerow w liscie | |
# to znaczy, ze znamy juz fib(n) bo mamy je w liscie | |
# czyli mozemy po prostu je zwrocic z listy zamiast liczyc | |
if n < len(fib_numbers): | |
return fib_numbers[n] | |
# musimy policzyc wywolujac nasza funkcje dla n-1 i n-2 i dodac | |
# to sie nazywa rekursja: funkcja sama siebie wykonuje | |
fn = fast_fib(n-1) + fast_fib(n-2) | |
# jesli nasze n to jest nastepne brakujace (bo juz znamy 0...n-1) | |
# to dodajemy wynik do listy fib_numbers, zapamietujemy go | |
if n == len(fib_numbers): | |
fib_numbers.append(fn) | |
# zwracamy wynik | |
return fn | |
print("fib(50) =", fast_fib(50)) | |
# co dalej | |
# anpisac to samo samemu od zera | |
# najpierw wolna wersje, | |
# potem szybka wersja | |
# zadania z minilogii etap 1 | |
# funkcja sprawdzajaca czy liczba n jest liczba 1. | |
# https://pygame-zero.readthedocs.io/en/stable/index.html | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment