タグ

pythonとmemoizeに関するishideoのブックマーク (2)

  • Python で Memoize する方法 - Qiita

    はじめに Python で Memoize (Memoization / メモ化) する方法をお伝えします。 ※「Memoize」は「Memoization」や「メモ化」ともいいます。 Memoize とは Memoize とは、キャッシュを用いて関数呼び出しを高速化する手法のことです。関数呼び出し時の引数をキーとして戻り値をキャッシュし、同じ引数で呼び出された場合にキャッシュした値を返す (関数呼び出しを省略する) ことで高速化します。 Memoize の効果が高い場合 関数が以下の特徴を持つときは、Memoize することで大きな効果を期待できます。 関数が同じ引数で何度も呼び出される 関数呼び出し 1 回あたりのコストが高い (実行時間が長い) 例としてフィボナッチ数を求める再帰関数を定義します。引数 n の値が大きくなるほど、関数 fibonacci は同じ引数で何度も呼び出されま

    Python で Memoize する方法 - Qiita
  • Goで再帰使うと遅くなりますがそれが何だ - YAMAGUCHI::weblog

    はじめに こんにちは、Go界のうまい棒です。昼間にTwitter眺めてたら次のような記事を見かけました。 この頃 流行りの 言語たち(他)でベンチマーク (Dart, Go, Julia, Nim, Python, Rust 他) - Blank File 結果はあくまでフィボナッチ数列をナイーブに実装した場合なんで、まあ明らかに遅くなるよなあと予想通りの実行結果でした。 件のプログラム ナイーブにフィボナッチ数列を実装してますね。 package main import "fmt" func fib(n int) int { if n < 2 { return n } return fib(n-2) + fib(n-1) } func main() { fmt.Println(fib(42)) } これを実際にビルドして実行するとどれくらいかかるかというと、だいたい手元で2.5秒以上かか

    Goで再帰使うと遅くなりますがそれが何だ - YAMAGUCHI::weblog
  • 1