Upgrade to Pro — share decks privately, control downloads, hide ads and more …

競プロへの誘 -いざな-

競プロへの誘 -いざな-

WASD Inc. LT会(仮)
2022-03-25

U76NER

May 16, 2022
Tweet

More Decks by U76NER

Other Decks in Programming

Transcript

  1. 計算量の例 8 - 例)
 - a n+2 = a n+1

    + a n ,
 a 1 = 1,
 a 2 = 1
 - このとき、a 40 , a 100 を求めよ
 
 - いわゆるフィボナッチ数列

  2. 計算量の例 10 - ナイーブな実装
 
 
 - a 100 が計算できない


    
 - 計算時間
 - a 40 : 604 ms
 - a 45 : 6,808 ms
 - a 50 : > 1 min

  3. 計算量の例 11 - 改善点
 
 - a 50 = a

    49 + a 48 
 = (a 48 + a 47 ) + (a 47 + a 46 )
 = (a 47 + a 46 ) + (a 46 + a 45 ) + (a 46 + a 45 ) + (a 45 + a 44 )
 = …

  4. 計算量の例 12 - 改善点
 
 - a 50 = a

    49 + a 48 
 = (a 48 + a 47 ) + (a 47 + a 46 )
 = (a 47 + a 46 ) + (a 46 + a 45 ) + (a 46 + a 45 ) + (a 45 + a 44 )
 = …
 
 - 重複した計算を上手く記憶しておくことで速くできそう 

  5. 計算量の例 14 - 途中計算を記憶しておく実装
 
 
 
 - 計算時間
 -

    a 40 : ≒ 1ms
 - a 100 : ≒ 1ms
 
 - ちなみにこういうアルゴリズムを総称して動的計画法(DP)という 

  6. 21