Вот пример функции Фибоначчи в Python:
def fibonacci(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
else:
fib_list = [0, 1]
while len(fib_list) < n:
next_number = fib_list[-1] + fib_list[-2]
fib_list.append(next_number)
return fib_list
Эта функция принимает целое число nв качестве входных данных и возвращает список первых nчисел Фибоначчи. Он использует цикл для итеративной генерации последовательности Фибоначчи.
Альтернативные методы расчета чисел Фибоначчи включают использование рекурсии, мемоизации и возведения матрицы в степень. Вот пример рекурсивной функции Фибоначчи:
def fibonacci_recursive(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
else:
fib_list = fibonacci_recursive(n - 1)
fib_list.append(fib_list[-1] + fib_list[-2])
return fib_list
В этой рекурсивной реализации функция вызывает саму себя для вычисления чисел Фибоначчи.
Другой подход — использовать мемоизацию, при которой сохраняются ранее вычисленные значения Фибоначчи, чтобы избежать избыточных вычислений. Вот пример использования мемоизации:
fib_cache = {}
def fibonacci_memo(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
elif n in fib_cache:
return fib_cache[n]
else:
fib_list = fibonacci_memo(n - 1)
next_number = fib_list[-1] + fib_list[-2]
fib_list.append(next_number)
fib_cache[n] = fib_list
return fib_list
Наконец, возведение матрицы в степень — еще один эффективный метод вычисления чисел Фибоначчи в логарифмической временной сложности. Однако он включает в себя более сложные математические операции и его может быть не так просто реализовать.