Skip to content

Latest commit

Β 

History

History
173 lines (129 loc) Β· 5.34 KB

Recurrence relation.md

File metadata and controls

173 lines (129 loc) Β· 5.34 KB

점화식(Recurrence relation)

μ ν™”μ‹μ΄λž€?

μˆ˜ν•™μ—μ„œ 점화식은 μˆ˜μ—΄μ—μ„œ μ΄μ›ƒν•˜λŠ” 두 개의 ν•­ 사이에 μ„±λ¦½ν•˜λŠ” 관계λ₯Ό λ‚˜νƒ€λ‚Έ 관계식

  • 두 관계식 $a_n = ar^{n-1}$, $a_n = ra_{n-1}$이 μžˆμ„ λ•Œ, 첫 λ²ˆμ§ΈλŠ” n의 값을 μ•„λŠ” μˆœκ°„ λ°”λ‘œ n번째 ν•­μ˜ 값을 μ•Œ 수 μžˆμ§€λ§Œ 두 λ²ˆμ§ΈλŠ” n번째 ν•­μ˜ 값을 κ΅¬ν•˜λ €λ©΄ n-1번째, n-1번째 ν•­μ˜ 값을 κ΅¬ν•˜λ €λ©΄ n-2번째 ν•­μ˜ 값을 μ•Œμ•„μ•Ό ν•œλ‹€.
  • 두 λ²ˆμ§Έμ™€ 같은 관계식에 λŒ€ν•΄ λ‚˜νƒ€λ‚Έ 것이 점화식이닀.
  • μ•Œκ³ λ¦¬μ¦˜ 뿐만 μ•„λ‹ˆλΌ DP(Dynamic Programming)μ—μ„œλ„ ν”νžˆ μ“°μ΄λŠ” 것이 점화식이닀.

μ ν™”μ‹μ˜ κ°œλ…

  • μˆ˜μ—΄ ${a_n}$의 각 ν•­ $a_n$이 ν•¨μˆ˜ $f$λ₯Ό μ΄μš©ν•΄μ„œ $a_{n+1} = f(a_n)$ 처럼 μ •ν•΄μ Έ μžˆμ„ λ•Œ, ν•¨μˆ˜ $f$λ₯Ό μˆ˜μ—΄ ${a_n}$의 점화식이라고 ν•˜λ©°, μˆ˜μ—΄ ${a_n}$은 점화식 $f$둜 μ •μ˜λœλ‹€κ³  ν•œλ‹€.
  • 점화식을 ν‘Όλ‹€λŠ” 것은 κ·€λ‚©μ μœΌλ‘œ 주어진 μˆ˜μ—΄ ${a_n}$의 μΌλ°˜ν•­ $a_n$을 n의 λͺ…μ‹œμ μΈ μ‹μœΌλ‘œ λ‚˜νƒ€λ‚΄λŠ” 것을 λ§ν•œλ‹€.

μ ν™”μ‹μ˜ μ˜ˆμ‹œμ™€ μ‹œκ°„ λ³΅μž‘λ„ 계산


1. $C_N = C_{N-1} + N$


  • 풀이

    $ C_N = C_{N-1} + N, N \geq2, C_1 = 1 \ C_N = C_{N-1} + N \ = C_{N-2} + (N-1) + N \ = C_{N-3} + (N-2) + (N-1) + N \ \cdots \ = C_1 + 2 + \cdots + (N-2) + (N-1) + N \ = 1 + 2 + \cdots + (N-2) + (N-1) + N \ = {N(N+1) \over 2} \ \rightarrow C_N = O(N^2) $

  • μ„€λͺ…

    N이 1이 될 λ•ŒκΉŒμ§€ N을 1μ”© 쀄이며 ν•΄λ‹Ή 항을 λŒ€μž…ν•˜λ©΄, 1λΆ€ν„° NκΉŒμ§€ λ”ν•˜λŠ” 식이 완성이 λœλ‹€.
    1λΆ€ν„° NκΉŒμ§€μ˜ 합은 λ“±μ°¨μˆ˜μ—΄μ˜ ν•© 곡식인 $ \displaystyle\sum_{k=1}^n{k} = {N(N+1) \over 2} $을 톡해 ꡬ할 수 μžˆλ‹€.
    λ”°λΌμ„œ, μ‹œκ°„ λ³΅μž‘λ„λŠ” $O(N^2)$이 λœλ‹€.


2. $C_N = C_{N/2} + 1$


  • 풀이

    $ C_N = C_{N/2} + 1, N \geq 2, C_1 = 0 \ N = 2^n으둜 κ°€μ •, \ C_{2^n} = C_{2^{n-1}} + 1 \ = C_{2^{n-2}} + 1 + 1 \ = C_{2^{n-3}} + 3 \ \cdots \ = C_{2^n} + n \ = n \ \rightarrow C_N = O(\log{N}) $

  • μ„€λͺ…

    N이 μž‘μ•„μ§ˆμˆ˜λ‘ 이전 κ°’μ—μ„œ λ°˜μ”© 쀄어든닀. $N/2$λŠ” $N \times 2^{-1}$κ³Ό κ°™λ‹€.
    $N$을 $2^n$으둜 μΉ˜ν™˜μ„ ν•˜μ—¬ 점화식을 κ³„μ‚°ν•˜κΈ° νŽΈν•˜κ²Œ λ§Œλ“€μ–΄ μ€€λ‹€.
    $N$이 1이 될 λ•ŒκΉŒμ§€. 즉, $2^n = 1$이 λ˜λŠ” $n = 0$ κΉŒμ§€ 식을 κ³„μ‚°ν•˜λ©΄ n번만큼 1을 λ”ν•˜κΈ° λ•Œλ¬Έμ— $C_{2^0} + n$이 λœλ‹€.
    $C_1 = 0$ μ΄λ―€λ‘œ $C_{2^n} = n$ 이 μ„±λ¦½ν•˜λ©°, 이λ₯Ό λ‹€μ‹œ 둜그 λ³€ν™˜ κ³΅μ‹μœΌλ‘œ μ›λž˜λŒ€λ‘œ μΉ˜ν™˜ν•œλ‹€.
    $ 2^n = N \ \rightarrow \log{2^n} = \log{N} \ \rightarrow n\log{2} = \log{N} \ \rightarrow n = \log{N} $
    λ”°λΌμ„œ, μ‹œκ°„ λ³΅μž‘λ„λŠ” $O(\log{N})$이 λœλ‹€.


3. $C_{N} = C_{N/2} + N$(2021 쀑간고사 1-1)


  • 풀이

    $ C_N = C_{N/2} + N, N \geq 2, C_1 = 0 \ N = 2^n으둜 κ°€μ •, \ C_{2^n} = C_{2^{n-1}} + 2^n \ = C_{2^{n-2}} + 2^{n-1} + 2^n \ = C_{2^{n-3}} + 2^{n-2} + 2^{n-1} + 2^n \ \cdots \ = C_{2^0} + \cdots + 2^{n-2} + 2^{n-1} + 2^n \ \approx 2N \ \rightarrow C_N = O(N) $

  • μ„€λͺ…

    μΉ˜ν™˜κ³Ό n을 μ€„μ—¬λ‚˜κ°€λŠ” 방식은 2번 μ˜ˆμ‹œμ™€ λ™μΌν•˜λ‹€. 바뀐 점은 1μ”© λ”ν•˜λŠ” 것이 μ•„λ‹Œ Nμ”© λ”ν•˜λŠ” 것이닀.
    μ΄λŠ” λ¬΄ν•œλ“±λΉ„κΈ‰μˆ˜μ˜ ν•© 곡식을 톡해 κ³„μ‚°ν•œλ‹€.
    $ S = \frac{a}{1-r} \ μ΄ˆν•­ a = N, 곡비 r = \frac{1}{2}인 λ¬΄ν•œλ“±λΉ„κΈ‰μˆ˜ \ C_N = N + \frac{N}{2} + \frac{N}{4} + \frac{N}{8} + \cdots \ S = \frac{N}{1 - \frac{1}{2}} = \frac{N}{\frac{1}{2}} = 2N $
    μ ν™”μ‹μ—μ„œ $2^n$μ—μ„œ κ³„μ†ν•΄μ„œ 2μ”© λ‚˜λˆ„κΈ° λ•Œλ¬Έμ— 2Nμ΄λΌλŠ” κ²°κ³Όκ°€ λ‚˜μ˜¨λ‹€. λ”°λΌμ„œ, μ‹œκ°„ λ³΅μž‘λ„λŠ” $O(N)$이 λœλ‹€.


4. $C_N = 2C_{N/2} + N$(2021 쀑간고사 1-2)


  • 풀이

    $ C_N = 2C_{N/2} + N, N \geq 2, C_1 = 0 \ N = 2^n으둜 κ°€μ •, \ C_2^n = 2C_{2^{n-1}} + 2^n \ \frac{C_{2^n}}{2^n} = \frac{C_{2^{n-1}}}{2^{n-1}} + 1 \ = \frac{C_{2^{n-2}}}{2^{n-2}} + 1 + 1 \ \cdots \ = n \ C_{2^n} = 2^n \cdot n \ \rightarrow C_N = O(N\log{N}) $

  • μ„€λͺ…

    이 λ¬Έμ œλ„ μΉ˜ν™˜μ— λŒ€ν•œ 것은 2번 λ¬Έμ œμ™€ λ™μΌν•˜λ‹€. λ‹€λ§Œ, $C_{N/2}$μ•žμ— 2κ°€ κ³±ν•΄μ Έ μžˆλŠ” 것에 μ£Όμ˜ν•΄μ•Ό ν•œλ‹€.
    이전 ν•­λ“€κ³Ό λ™μΌν•œ 계산을 μœ„ν•΄ $2^n$을 μ–‘μͺ½ 항에 λͺ¨λ‘ λ‚˜λˆ„μ–΄μ€˜μ•Ό ν•œλ‹€.
    $2C_{2^{n-1}}$은 $\frac{2C_{2^{n-1}}}{2^n}$이 되고, μ΄λŠ” $\frac{C_{2^{n-1}}}{2^{n-1}}$κ³Ό κ°™λ‹€.
    N이 1, n이 0이 될 λ•Œ κΉŒμ§€ 계산을 ν•˜λ©΄ 1이 n번 더해지기 λ•Œλ¬Έμ— n만 λ‚¨κ²Œ λœλ‹€. ν•˜μ§€λ§Œ 관계식 μžμ²΄λŠ” $\frac{C_{2^n}}{2^n} = n$이기 λ•Œλ¬Έμ—, λ‹€μ‹œ μ–‘μͺ½μ— $2^n$λ₯Ό κ³±ν•˜μ—¬ $2^n \cdot n$이 λœλ‹€.이λ₯Ό 둜그 λ³€ν™˜ 곡식을 톡해 N으둜 λ°”κΎΈμ–΄ μ£Όλ©΄ λœλ‹€. $ \log{2^n} \times \log{n} \ \rightarrow \log{N} \times N \ \rightarrow N\log{N}
    $
    λ”°λΌμ„œ, μ‹œκ°„ λ³΅μž‘λ„λŠ” $O(N\log{N})$이 λœλ‹€.


5. ν”Όλ³΄λ‚˜μΉ˜μˆ˜μ—΄(DP)


  • 풀이

    • 파이썬 μ½”λ“œ
    ## 100번째 κΉŒμ§€μ˜ ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄
    dp = [0] * 101
    dp[0], dp[1] = 0, 1
    
    for i in range(2, 101):
        dp[i] = dp[i - 1] + dp[i - 2]
    • 점화식

      $ dp[i] = \begin{cases} i ;(i < 2) \ dp[i - 1] + dp[i - 2] ;(i \geq 2) \end{cases} $


μ•Œκ³ λ¦¬μ¦˜ μ—°μŠ΅λ¬Έμ œ

1.8 $C_N = 2C_{N/2} + N^2$