Pythonとか)フィボナッチ数フィボナッチ数とはフィボナッチ数とは、イタリアの数学者レオナルド・フィボナッチにちなんで名付けられた特別な意味を持つ数です。式で再帰的に求めることができます。フィボナッチ数列と呼ばれます。フィボナッチ数列は以下のように続いていきます。...サンプルコードフィボナッチ数の定義をそのまま再帰的な形で実装してやればよいので難しいことはありません。40番目のフィボナッチ数を求めてみます。すると思った以上に実行時間がかかることに気が付きます。これはすでに求めた計算を何度も計算しているからです。9番目も8番目も求めるときに7番目の計算を行います。F6さらに言えば、n番目のフィボナッチ数を求めるために、1..n-1番目までのフィボナッチ数すべてを再帰的に計算しています。一度計算した値を再度計算しないようにメモ化(Memoization)と呼ばれる最適化技法を使って効率化できます。メモ化とは、関数呼び出し結果を再利用できるように保持しておく手法です。今回の例で言えば、一度計算したフィボナッチ数を保持しておき、あとで利用します。サンプルコード(メモ化)再帰的に呼び出される関数の外部に、計算結果のフィボナッチ数を保持できる領域を用意します。再帰的に関数を呼び出す際には、計算済であればそれを利用します。未計算であればそれを計算して保存しておきます。これで40番目のフィボナッチ数もメモ化なしの場合に比べ高速に求められます。