Вот программа на Python, которая печатает числа Фибоначчи:
def fibonacci(n):
fib_seq = [0, 1] # Initialize the Fibonacci sequence with the first two numbers
while len(fib_seq) < n:
next_num = fib_seq[-1] + fib_seq[-2] # Calculate the next number in the sequence
fib_seq.append(next_num) # Add the next number to the sequence
return fib_seq
# Example usage
n = 10
fibonacci_sequence = fibonacci(n)
print(fibonacci_sequence)
Эта программа использует простой итеративный подход для генерации последовательности Фибоначчи до заданного числа n. Он начинается с первых двух чисел 0и 1, а затем вычисляет каждое последующее число путем сложения двух предыдущих чисел в последовательности.
Теперь давайте рассмотрим различные методы генерации чисел Фибоначчи:
Метод 1: итеративный подход
Этот метод использовался в предыдущем примере. Он итеративно вычисляет последовательность Фибоначчи до заданного числа n.
def fibonacci_iterative(n):
fib_seq = [0, 1]
while len(fib_seq) < n:
next_num = fib_seq[-1] + fib_seq[-2]
fib_seq.append(next_num)
return fib_seq
Метод 2: рекурсивный подход
Этот метод использует рекурсию для генерации чисел Фибоначчи. Он имеет более высокую временную сложность по сравнению с итеративным подходом.
def fibonacci_recursive(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
else:
fib_seq = fibonacci_recursive(n - 1)
next_num = fib_seq[-1] + fib_seq[-2]
fib_seq.append(next_num)
return fib_seq
Метод 3: подход динамического программирования
Этот метод оптимизирует рекурсивный подход с использованием динамического программирования. Он позволяет избежать избыточных вычислений, сохраняя ранее вычисленные числа Фибоначчи.
def fibonacci_dynamic(n):
fib_seq = [0, 1]
if n <= 2:
return fib_seq[:n]
else:
for i in range(2, n):
next_num = fib_seq[-1] + fib_seq[-2]
fib_seq.append(next_num)
return fib_seq
Метод 4: подход с использованием функции-генератора.
Этот метод использует функцию-генератор для ленивой генерации чисел Фибоначчи на лету, что позволяет сэкономить память для больших последовательностей.
def fibonacci_generator(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
# Example usage
n = 10
fibonacci_sequence = list(fibonacci_generator(n))
print(fibonacci_sequence)
Это некоторые из распространенных методов генерации чисел Фибоначчи в Python. Каждый метод имеет свои преимущества и недостатки с точки зрения временной сложности, пространственной сложности и производительности.