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

竸プロに出てきそうなアルゴリズム part2

竸プロに出てきそうなアルゴリズム part2

More Decks by NearMeの技術発表資料です

Other Decks in Technology

Transcript

  1. 0
    竸プロに出てきそうなアルゴリズム part2
    2022-09-02 第12回NearMe技術勉強会
    Name / Nickname

    View full-size slide

  2. 1
    目次
    1. 全探索について
    2. 再帰関数のメモ化
    1

    View full-size slide

  3. 2
    全探索について
    • for文を用いた全探索
    • bit全探索
    • 順列全探索
    • 再帰関数を用いた全探索 など
    2

    View full-size slide

  4. 3
    再帰関数
    例:フィボナッチ数列
    ・F
    0
     = 0
    ・F
    1
     = 1
    ・F
    N 
    = F
    N-1 
    ー F
    N-2
    def fibo(N):
    if N==0:
    return 0
    elif N==1:
    return 1
    else:
    return fibo(N-1) + fibo(N-2)
    3

    View full-size slide

  5. 4
    メモ化 計算量:O(2N)→O(N)
    4
    5
    4 3
    3
    2
    1
    2
    2
    1 0
    1 0
    1
    0
    1

    View full-size slide

  6. 5
    部分和問題
    ・n個の正の整数 a[0],a[1],…,a[n−1]と正の整数Wが与えられる。これらの整数
    から何個かの整数を選んで総和がAになるようにすることが可能か判定せよ。
    例:a=[2,5,3,8,6,9], W=13
    計算量がO(N*2N)からO(N*W)へ
    5

    View full-size slide

  7. 6
    参考文献
    ・アルゴリズムとデータ構造
    6

    View full-size slide