logo

„Python“ programa, skirta spausdinti „Fibonacci“ seką

Fibonačio skaičiai yra skaičiai šioje sveikųjų skaičių sekoje. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …….. Matematine prasme Fibonačio skaičių seka Fn apibrėžiama pasikartojimo ryšiu.

F n = Fn-1+ Fn-2



su sėklų vertėmis: F 0 = 0 ir F 1 = 1.

Fibonačio skaičiai naudojant vietinį metodą

Fibonačio serija naudojant a Python while ciklas yra įgyvendinamas.

Python3








n>=> 10> num1>=> 0> num2>=> 1> next_number>=> num2> count>=> 1> while> count <>=> n:> >print>(next_number, end>=>' '>)> >count>+>=> 1> >num1, num2>=> num2, next_number> >next_number>=> num1>+> num2> print>()>

>

>

Išvestis

1 2 3 5 8 13 21 34 55 89>

„Python“ programa, skirta Fibonačio skaičiams naudojant „Recursion“.

Python Funkcija rasti n-ąjį Fibonačio skaičių naudojant Python rekursija .

Python3




def> Fibonacci(n):> ># Check if input is 0 then it will> ># print incorrect input> >if> n <>0>:> >print>(>'Incorrect input'>)> ># Check if n is 0> ># then it will return 0> >elif> n>=>=> 0>:> >return> 0> ># Check if n is 1,2> ># it will return 1> >elif> n>=>=> 1> or> n>=>=> 2>:> >return> 1> >else>:> >return> Fibonacci(n>->1>)>+> Fibonacci(n>->2>)> # Driver Program> print>(Fibonacci(>9>))>

>

>

Išvestis

34>

Laiko sudėtingumas: O(2 ^ n) Eksponentinis
Pagalbinė erdvė: O(n)

Fibonačio seka naudojant DP (dinaminį programavimą)

Python dinaminis programavimas Pirmieji du Fibonačio skaičiai yra 0 ir 1.

Python3




# Function for nth fibonacci> # number> FibArray>=> [>0>,>1>]> def> fibonacci(n):> > ># Check is n is less> ># than 0> >if> n <>0>:> >print>(>'Incorrect input'>)> > ># Check is n is less> ># than len(FibArray)> >elif> n <>len>(FibArray):> >return> FibArray[n]> >else>:> >FibArray.append(fibonacci(n>-> 1>)>+> fibonacci(n>-> 2>))> >return> FibArray[n]> # Driver Program> print>(fibonacci(>9>))>

>

>

Išvestis

34>

Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(n)

Fibonačio sekos optimizavimas

Čia taip pat erdvės optimizavimas, kai pirmieji du Fibonačio skaičiai yra 0 ir 1.

Python3




# Function for nth fibonacci number> def> fibonacci(n):> >a>=> 0> >b>=> 1> > ># Check is n is less> ># than 0> >if> n <>0>:> >print>(>'Incorrect input'>)> > ># Check is n is equal> ># to 0> >elif> n>=>=> 0>:> >return> 0> > ># Check if n is equal to 1> >elif> n>=>=> 1>:> >return> b> >else>:> >for> i>in> range>(>1>, n):> >c>=> a>+> b> >a>=> b> >b>=> c> >return> b> # Driver Program> print>(fibonacci(>9>))>

>

>

Išvestis

34>

Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(1)

Fibonačio seka naudojant talpyklą

lru_cache išsaugos rezultatą, kad nereikėtų dar kartą surasti Fibonačio už tą patį skaičių.

Python3




from> functools>import> lru_cache> # Function for nth Fibonacci number> @lru_cache>(>None>)> def> fibonacci(num:>int>)>->>>>:> ># check if num is less than 0> ># it will return none> >if> num <>0>:> >print>(>'Incorrect input'>)> >return> ># check if num between 1, 0> ># it will return num> >elif> num <>2>:> >return> num> ># return the fibonacci of num - 1 & num - 2> >return> fibonacci(num>-> 1>)>+> fibonacci(num>-> 2>)> # Driver Program> print>(fibonacci(>9>))>

mylivericket

>

>

Išvestis

34>

Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(n)

Fibonačio seka naudojant Backtracking

n-ojo Fibonačio skaičiaus funkcija naudojantPython3




def> fibonacci(n, memo>=>{}):> >if> n <>=> 0>:> >return> 0> >elif> n>=>=> 1>:> >return> 1> >elif> n>in> memo:> >return> memo[n]> >else>:> >memo[n]>=> fibonacci(n>->1>)>+> fibonacci(n>->2>)> >return> memo[n]> # Driver Program> print>(fibonacci(>9>))>

>

>

Išvestis

34>

Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(n)

Peržiūrėkite visą straipsnį apie Fibonačio skaičių programa daugiau detalių!