Последовательность Фибоначчи — это числовая последовательность, в которой каждое последующее число является суммой двух предыдущих. Последовательность начинается с двух заданных чисел: φ0=0 и φ1=1. Таким образом, она выглядит следующим образом:
- φ0 = 0
- φ1 = 1
- φ2 = φ1 + φ0 = 1 + 0 = 1
- φ3 = φ2 + φ1 = 1 + 1 = 2
- φ4 = φ3 + φ2 = 2 + 1 = 3
- φ5 = φ4 + φ3 = 3 + 2 = 5
- φ6 = φ5 + φ4 = 5 + 3 = 8
- и так далее.
Для вычисления n-го числа Фибоначчи φn, когда дано натуральное число n, можно использовать несколько подходов: рекурсивный, итеративный и с использованием формулы Бине. Рассмотрим итеративный подход, который является наиболее оптимальным по времени и памяти.
Итеративный метод:
Итеративный подход заключается в последовательном вычислении каждого числа Фибоначчи от 0 до n. Данный метод использует цикл и требует минимальных затрат памяти, так как достаточно хранить только два предыдущих числа.
Пример реализации на языке Python:
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
# Пример использования
n = 6
print(fibonacci(n)) # Выведет: 8
Объяснение работы программы:
- Базовые случаи: Если n равно 0 или 1, функция сразу возвращает соответствующее значение (0 или 1).
- Итерация: Для n >= 2 функция использует цикл, чтобы вычислить все числа Фибоначчи от 2 до n.
- Переменные
a
и b
инициализируются значениями φ0 и φ1 соответственно.
- Цикл обновляет значения
a
и b
, сдвигая их на одно место вперед в последовательности Фибоначчи. На каждой итерации значение b
становится текущим числом Фибоначчи.
- Результат: После завершения цикла переменная
b
содержит значение φn.
Этот метод эффективен по времени выполнения (O(n)) и использует O(1) дополнительной памяти. Это делает его подходящим для вычисления больших чисел Фибоначчи.