Некоторые простые функции: числа Фибоначчи
Вы знакомы с числами Фибоначчи?
Они представляют собой последовательность целых чисел, построенную по очень простому правилу:
- первый элемент последовательности равен единице (Fib1 = 1)
- второй также равен единице (Fib2 = 1)
- каждое последующее число является суммой двух предыдущих чисел:
(Fibi = Fibi-1 + Fibi-2)
Вот некоторые из первых чисел Фибоначчи:
fib_1 = 1
fib_2 = 1
fib_3 = 1 + 1 = 2
fib_4 = 1 + 2 = 3
fib_5 = 2 + 3 = 5
fib_6 = 3 + 5 = 8
fib_7 = 5 + 8 = 13
Что Вы думаете о реализации этой функции?
Давайте создадим нашу функцию fib
и протестируем ее:
def fib(n):
if n < 1:
return None
if n < 3:
return 1
elem_1 = elem_2 = 1
the_sum = 0
for i in range(3, n + 1):
the_sum = elem_1 + elem_2
elem_1, elem_2 = elem_2, the_sum
return the_sum
for n in range(1, 10): # testing
print(n, "->", fib(n))
Тщательно проанализируйте тело цикла for
и узнайте, как мы перемещаем переменные elem_1
и elem_2
по последовательности чисел Фибоначчи.
Тестовая часть кода дает следующий результат:
1 -> 1
2 -> 1
3 -> 2
4 -> 3
5 -> 5
6 -> 8
7 -> 13
8 -> 21
9 -> 34
output