らんだむな記憶

blogというものを体験してみようか!的なー

lru_cache

うっ・・・こんなのがあるのか・・・。
Dice -- from Wolfram MathWorldにあるような面が$s$個のサイコロを$n$個転がした時に面の総和が$p$になる確率・・・をpythonで実装したくなった。
数日考えて、漸化式による解法を思いつくが(動的計画法と言うらしい・・・)、たぶん実装は間違っていないものの速度が出ない・・・。

from functools import lru_cache

@lru_cache(maxsize=None)

を付けたら高速化できるという情報をもとに付けてみたらこれだけでほぼ数秒で計算が完了した・・・。
functools --- 高階関数と呼び出し可能オブジェクトの操作 — Python 3.7.3 ドキュメントなんて日頃から数値計算してないと遭遇しないかもしれないな・・・。