Программа на Python для генерации последовательности Фибоначчи: методы и примеры

Вот программа на Python, которая генерирует последовательность Фибоначчи:

def generate_fibonacci(n):
    fibonacci_sequence = [0, 1]  # Initialize the sequence with the first two numbers
    if n <= 1:
        return fibonacci_sequence[:n + 1]  # Return the sequence up to the given index
    while len(fibonacci_sequence) <= n:
        next_number = fibonacci_sequence[-1] + fibonacci_sequence[-2]  # Calculate the next number
        fibonacci_sequence.append(next_number)  # Add the next number to the sequence
    return fibonacci_sequence
# Test the function
index = int(input("Enter the index of the Fibonacci sequence: "))
fib_sequence = generate_fibonacci(index)
print(fib_sequence)

Эта программа определяет функцию generate_fibonacci, которая принимает на вход целое число n, представляющее индекс, до которого вы хотите сгенерировать последовательность Фибоначчи. Он инициализирует последовательность первыми двумя числами [0, 1], а затем итеративно вычисляет следующее число в последовательности, складывая два последних числа. Функция возвращает список, содержащий последовательность Фибоначчи до заданного индекса.

Чтобы использовать программу, вы можете запустить ее и ввести нужный индекс при появлении соответствующего запроса. Например, при вводе 10будет сгенерирована последовательность Фибоначчи [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]..р>

Вот несколько альтернативных методов генерации последовательности Фибоначчи в Python:

  1. Рекурсивный подход:

    def generate_fibonacci_recursive(n):
    if n <= 1:
        return n
    else:
        return generate_fibonacci_recursive(n - 1) + generate_fibonacci_recursive(n - 2)
  2. Использование функции генератора:

    def generate_fibonacci_generator():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

    Вы можете использовать функцию генератора следующим образом:

    fib_generator = generate_fibonacci_generator()
    fib_sequence = [next(fib_generator) for _ in range(n)]