Как определить число Фибоначчи в Python: простой способ и примеры
Функция для определения чисел Фибоначчи в Python может быть написана с помощью рекурсии или цикла.
Вариант 1: Рекурсия
def fibonacci_recursion(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fibonacci_recursion(n-1) + fibonacci_recursion(n-2)
Вариант 2: Цикл
def fibonacci_loop(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
a, b = 0, 1
for _ in range(2, n+1):
a, b = b, a + b
return b
Пример использования:
n = 10
result_recursion = fibonacci_recursion(n)
print(f"Число Фибоначчи по рекурсии для n={n} равно: {result_recursion}")
result_loop = fibonacci_loop(n)
print(f"Число Фибоначчи по циклу для n={n} равно: {result_loop}")
Детальный ответ
Как определить число Фибоначчи в Python
Числа Фибоначчи - это последовательность чисел, в которой каждое число является суммой двух предыдущих чисел. Эта последовательность начинается с чисел 0 и 1.
Для определения числа Фибоначчи в Python мы можем использовать несколько подходов. Рассмотрим два из них.
1. Использование рекурсии
Рекурсия - это прием программирования, при котором функция вызывает сама себя. Мы можем определить число Фибоначчи с помощью рекурсивной функции.
def fibonacci_recursive(n):
if n <= 1:
return n
else:
return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)
В этой функции мы проверяем базовый случай, когда n меньше или равно 1. Если это так, мы возвращаем n. Иначе мы рекурсивно вызываем функцию для n-1 и n-2 и возвращаем их сумму.
Пример использования:
n = 6
result = fibonacci_recursive(n)
print(f"Число Фибоначчи для {n}-го элемента: {result}")
В этом примере мы определяем значение переменной n как 6 и вызываем функцию fibonacci_recursive для этого значения. Результат будет распечатан на экране.
2. Использование цикла
Кроме рекурсии, мы также можем определить число Фибоначчи, используя цикл.
def fibonacci_iterative(n):
if n <= 1:
return n
previous = 0
current = 1
for _ in range(2, n+1):
temp = current
current = previous + current
previous = temp
return current
В этой функции мы проверяем базовый случай, когда n меньше или равно 1. Если это так, мы возвращаем n. Затем мы инициализируем переменные previous и current для последовательности чисел Фибоначчи. Затем мы используем цикл for, чтобы вычислить значения последующих чисел Фибоначчи, пока не достигнем n. Мы обновляем значения previous и current на каждой итерации.
Пример использования:
n = 6
result = fibonacci_iterative(n)
print(f"Число Фибоначчи для {n}-го элемента: {result}")
В этом примере мы определяем значение переменной n как 6 и вызываем функцию fibonacci_iterative для этого значения. Результат будет распечатан на экране.
3. Сравнение двух подходов
Когда мы сравниваем рекурсивный и итеративный подходы для определения числа Фибоначчи, мы видим, что рекурсивный подход требует более высоких вычислительных ресурсов и может быть замедлен для больших значений n. Итеративный подход, с другой стороны, является более эффективным и быстрым.
Теперь, когда вы знакомы с двумя подходами, вы можете выбрать наиболее подходящий для ваших нужд.