logo

フィボナッチ数列を出力する Python プログラム

フィボナッチ数とは、次の整数列の数値です。 0、1、1、2、3、5、8、13、21、34、55、89、144、……数学用語では、フィボナッチ数列 Fn は漸化式によって定義されます。

F n = Fn-1+Fn-2

シード値を使用して: F 0 = 0 および F 1 = 1。



ネイティブアプローチを使用したフィボナッチ数

を使用したフィボナッチ数列 Pythonのwhileループ が実装されています。

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>()>

>

>

それ以外の場合は Java

出力

1 2 3 5 8 13 21 34 55 89>

再帰を使用したフィボナッチ数の Python プログラム

パイソン を使用してn番目のフィボナッチ数を見つける関数 Python の再帰

Python3




Javaelif
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>))>

>

>

出力

34>

時間計算量: O(2 ^ n) 指数関数
補助スペース: の上)

DP (動的計画法) を使用したフィボナッチ数列

Python 動的プログラミング 最初の 2 つのフィボナッチ数を 0 と 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>))>

>

>

出力

34>

時間計算量: の上)
補助スペース: の上)

フィボナッチ数列の最適化

ここでもスペース最適化で最初の 2 つのフィボナッチ数を 0 と 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>))>

>

>

出力

34>

時間計算量: の上)
補助スペース: ○(1)

キャッシュを使用したフィボナッチ数列

lru_キャッシュ 結果が保存されるため、同じ数値のフィボナッチを再度見つける必要はありません。

Python3




from> functools>import> lru_cache> # Function for nth Fibonacci number> @lru_cache>(>None>)> def> fibonacci(num:>int>)>->>>>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>))>

>

>

出力

34>

時間計算量: の上)
補助スペース: の上)

通信販売トラバーサル バイナリ ツリー

バックトラッキングを使用したフィボナッチ数列

n番目のフィボナッチ数を求める関数Python3




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>))>

>

>

出力

34>

時間計算量: の上)
補助スペース: の上)

詳細な記事を参照してください。 フィボナッチ数のためのプログラム 詳細については!