Рубрики

Программа Python для чисел Фибоначчи

Числа Фибоначчи — это числа в следующей последовательности целых чисел.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …… ..

В математических терминах последовательность Fn чисел Фибоначчи определяется рекуррентным соотношением

    Fn = Fn-1 + Fn-2

с начальными значениями

   F0 = 0 and F1 = 1.

Метод 1 (Использовать рекурсию):

# Функция для n-го числа Фибоначчи

  

def Fibonacci(n):

    if n<0:

        print("Incorrect input")

    # Первое число Фибоначчи равно 0

    elif n==1:

        return 0

    # Второе число Фибоначчи равно 1

    elif n==2:

        return 1

    else:

        return Fibonacci(n-1)+Fibonacci(n-2)

  
# Драйверная программа

  

print(Fibonacci(9))

  
# Этот код предоставлен Сакет Моди

Выход:

21

Способ 2 (использовать динамическое программирование):

# Функция для n-го числа Фибоначчи - Динамическое программирование
# Принимая первые два нубера Фибоначчи за 0 и 1

  

FibArray = [0,1]

  

def fibonacci(n):

    if n<0:

        print("Incorrect input")

    elif n<=len(FibArray):

        return FibArray[n-1]

    else:

        temp_fib = fibonacci(n-1)+fibonacci(n-2)

        FibArray.append(temp_fib)

        return temp_fib

  
# Драйверная программа

  

print(fibonacci(9))

  
# Этот код предоставлен Сакет Моди

Выход:

21

Метод 3 (оптимизированное пространство):

# Функция для n-го числа Фибоначчи - Оптимизация пространства
# Принятие первых двух чисел Фибоначчи за 0 и 1

  

def fibonacci(n):

    a = 0

    b = 1

    if n < 0:

        print("Incorrect input")

    elif n == 0:

        return a

    elif n == 1:

        return b

    else:

        for i in range(2,n):

            c = a + b

            a = b

            b = c

        return b

  
# Драйверная программа

  

print(fibonacci(9))

  
# Этот код предоставлен Сакет Моди

Выход:

21

Пожалуйста, обратитесь к полной статье о программе для чисел Фибоначчи для более подробной информации!

Рекомендуемые посты:

Программа Python для чисел Фибоначчи

0.00 (0%) 0 votes