Skip to main content

Program for Fibonacci numbers

fibonacci-sequence

The Fibonacci numbers are the numbers in the following integer sequence.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …….

In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence relation
Fn = Fn-1 + Fn-2
with seed values
F0 = 0 and F1 = 1


Give a number n, print n-th Fibonacci Number.
Input:    n = 2
Output: 1

Input:    n = 7
Output: 13

Write a function int fib(int n) that returns Fn. For example, if n = 0, then fib() should return 0. If n= 1, then it should return 1. For n > 1, it should return Fn-1 + Fn-2.

Program:
Method -1 (Use recursion)
# Function for nth Fibonacci number
def Fibonacci(n):
    if n<0:
        print("Incorrect input")
    # First Fibonacci number is 0
    elif n==1:
        return 0
    # Second number is 1Fibonacci
    elif n==2:
        return 1
    else:
        return Fibonacci(n-1)+Fibonacci(n-2)
# Driver Program
print(Fibonacci(7))

Time Complexity: T(n) = T(n-1) + T(n-2) which is exponential.
We observe that this implementation does a lot of repeated work. So, this will be some bad implementation.

Method -2 (Use Dynamic Programming)
# Fibonacci Series using Dynamic Programming
def fibonacci(n):
# Taking 1st two fibonacci nubers as 0 and 1
FibArray = [0, 1]
while len(FibArray) < n + 1: 
FibArray.append(0) 
if n <= 1:
return n
else:
if FibArray[n - 1] == 0:
FibArray[n - 1] = fibonacci(n - 1)
if FibArray[n - 2] == 0:
FibArray[n - 2] = fibonacci(n - 2)
FibArray[n] = FibArray[n - 2] + FibArray[n - 1]
return FibArray[n]
print(fibonacci(7))




Comments

Popular posts from this blog

Python NumPy Introduction

Python is emerging as one of the favorite tools in the filed of data science. With powerful data science libraries like NumPy, SciPy, pandas, matplotlib, scikit-learn and tools like IPython (Jupyter) notebook combined with ease of programming, Python is proven as the powerful and preferred language of organizations. In this course I will tech you the basics of NumPy and further take a deep dig on playing with NumPy. NumPy  : NumPy is a python library, which supports efficient handling of various numerical operations on arrays holding numeric data.  They are known as N-dimensional-arrays or ndarrays.  Ndarrays are capable of holding data elements in multiple dimensions  and each data element of it is of fixed size and also all the elements of ndarray are of same data type. N-dimensional array  ( ndarray)  : N-dimensional array is an object, capable of holding data elements of same type and of fixed size in multiple dim...

5 Kind of Bugs Every Programmer Encounter During Coding

                As a programmer, you have to expect bugs. In simple terms, a bug can be defined as an error in a program. During the coding of a program, we often make some mistakes. These mistakes showcase themselves as bugs in your code. Writing a code is the easy part. The hard step is the debugging (Searching for the errors or bugs in a program). And it can get especially frustrating in situations where you create more bugs instead of fixing the current one. If you haven’t encountered the following bugs, you should expect them any time soon: Tiny Bugs:                 These types of bugs may be miniature, but dealing with them is no easy task. You will receive compiler errors, and then spend hours, or even days trying to figure out where you went wrong. Such bugs include forgetting that little semicolon or bracket. In a programming language like Python, you can face trouble when indentation i...

Python File

File handling is the most important part of any Web Applications. This has several functions for creating, reading, updating, deleting files etc., File Handling:           The key for working with files in Python is the open() function. Syntax: open(filename, mode) There are four different methods for opening a file: "r" - Read - Default value. Opens a file for reading, error if the file does not exist. "a" - Append - Opens a file for appending, creates the file if it does not exist. "w" - Write - Opens a file for writing, creates the file if it does not exist. "x" - Create - Creates the specified file, returns an error if the file exists. In addition you can specify if the file should be handled as binary or text mode: "t" - Text - Default value. Text mode. "b" - Binary - Binary mode(e.g., images) Note: Make sure the file exists, or else you will get an error. Syntax: f = ...