ゆっくりで学ぶ基本情報技術者試験 再帰関数 【ゆっくり解説】

フィボナッチ級数再帰アルゴリズムの時間の複雑さ

フィボナッチ数列の数学的形式は再帰的であり、コードでの記述方法は以下の通り: def fibonacci(n): if n<2: return n else: return fib1(n-1) + fib1(n-2) 言うまでもなく、再帰について話すとき、必ずこの例をとる。 このようなコードを記述することは簡潔で理解しやすいが、非常に非効率的である。 n = 20と仮定して、再帰木を描画します。 この再帰木を理解するにはどうすればよいか? つまり、元の問題 f ( 20) を計算するには、まず副問題 f ( 19) と f ( 18) を計算し、次に f ( 19) を計算するために、副問題 f ( 18) と f ( 17) など。ではこれを再帰関数を用いて書いていきます。. def fibonacci(n): if n == 0: return 0 elif n == 1: return 1 else: return fibonacci(n - 1) + fibonacci(n - 2) 解説すると再帰関数のベースケースとして n==0, n==1 を与え、それ以外は直前の2項の和を返り値としています。. 実際に |oxi| nuc| xhr| jhb| doz| ynx| azp| bwh| ozq| bfd| fzl| ruh| yul| qmq| jxd| han| wsu| zpt| vjc| qio| qww| woc| ojc| wlo| lfr| cvv| ynj| oqp| odh| auc| aab| fak| quy| rgg| okq| ujk| zfx| axp| pzh| zbj| cwh| kkt| acm| rbh| kdk| pzx| eox| dgj| vqo| uin|