Data Structure
𧩠[Data Structure] μ¬κ· ꡬ쑰μ μ(1) - μμ΄
β
1οΈβ£ μμ΄.
-
1. μ΄ν(First Term)
- βοΈ μ μ : μμ΄μμ 첫 λ²μ§Έ νμ μλ―Έν¨.
- βοΈ κΈ°νΈ : μΌλ°μ μΌλ‘ μ΄νμ $a_1$ λλ $a$λ‘ λνλ.
- βοΈ μμ :
- μμ΄: 2, 4, 6, 8, β¦
- μ΄ν: $a_1 = 2$
-
2. 곡차(Common Difference)
- βοΈ μ μ : λ±μ°¨μμ΄μμ μ°μλ λ νμ μ°¨μ΄λ₯Ό μλ―Έν¨.
- βοΈ κΈ°νΈ : μΌλ°μ μΌλ‘ 곡차λ $d$λ‘ λνλ.
- βοΈ κ³΅μ :
- βοΈ $d = a_{n+1} - a_n$
- βοΈ μμ :
- βοΈ μμ΄ : 2, 4, 6, 8, β¦
- βοΈ κ³΅μ°¨ : $d = 4 - 2 = 2$
-
3. μ νμ (Recurrence Relation)
- βοΈ μ μ : μμ΄μ κ° νμ μ΄μ ν(λλ λͺ κ°μ ν)μ μ΄μ©ν΄ ννν μμ.
- βοΈ κΈ°νΈ : λ³΄ν΅ $a_{n+1} = a_n + d$ ννλ‘ λνλ¨.
- βοΈ μμ :
- βοΈ μμ΄ : 2, 4, 6, 8, β¦
- βοΈ μ νμ : $a_{n+1} = a_n + 2$
-
4. λ±μ°¨μμ΄ (Arithmetic Sequence)
- βοΈ μ μ : μ°μλ νλ€μ μ°¨μ΄κ° μΌμ ν μμ΄.
- βοΈ μΌλ°ν 곡μ :
- βοΈ $a_n = a + (n-1)d$
- βοΈ $a$ : μ΄ν
- βοΈ $d$ : 곡차
- βοΈ $n$ : νμ λ²νΈ
- βοΈ μμ :
- βοΈ μμ΄ : $2, 4, 6, 8, β¦$
- βοΈ μ΄ν : $a = 2$
- βοΈ κ³΅μ°¨ : $d = 2$
- βοΈ 5λ² μ§Έ ν : $a_5 = 2 + (5-1) \cdot 2 = 10$
β
2οΈβ£ μ¬κ·μ ꡬ쑰 μκ³ λ¦¬μ¦ μμ.
π λ±μ°¨μμ΄
- βοΈ $a_n = a_{n-1}+3, a_1 = 1$
- βοΈ μ΄νμ΄ 1, κ³΅μ°¨κ° 3μΈ λ±μ°¨μμ΄μ μ νμ.
- βοΈ μμ΄μ nλ²μ§Έ μμλ μμ κ³Ό μ±κ²©μ΄ λκ°μ§λ§ μμκ° νλ μμ $(n-1)$λ²μ§Έ μμμ 3μ λν κ²μ.
- βοΈ μ²« λ²μ§Έ μμλ 1.
- βοΈ μ΄κ²μ μ¬κ· μκ³ λ¦¬μ¦μΌλ‘ ꡬννλ©΄ μλμ κ°λ€.
seq(n):
if (n = 1)
return 1
else
return seq(n-1) + 3
- βοΈ μκ³ λ¦¬μ¦ seq(n)μ seq(n-1)μ νΈμΆ, seq(n-1)μ seq(n-2)λ₯Ό νΈμΆ.
- βοΈ seq(n-2)λ seq(n-3)μ νΈμΆβ¦ seq(2)λ seq(1)μ νΈμΆνκ³ , seq(1)μ 1μ 리ν΄νκ³ λλ¨.
- βοΈ seq(1)μ΄ λλλ©΄ μμμΌλ‘ μ§νλ¨.
- βοΈ seq(2)λ seq(1)μ λ¦¬ν΄ κ°μ λ°μ 3μ λν΄ λ¦¬ν΄
- βοΈ seq(3)μ seq(2)μ λ¦¬ν΄ κ°μ λ°μ 3μ λν΄ λ¦¬ν΄
- βοΈ seq(4)λ seq(3)μ λ¦¬ν΄ κ°μ λ°μ 3μ λν΄ λ¦¬ν΄
- βοΈ seq(n)μ seq(n-1)μ λ¦¬ν΄ κ°μ λ°μ 3μ λν΄ λ¦¬ν΄νλ©΄μ μ μ²΄κ° λλ¨.
- βοΈ λ±μ°¨μμ΄μ κ²°κ³Όλ₯Ό λ°λ‘ κ³μ°ν μ μλ μμ΄ μμ΄ κ΅³μ΄ μ΄λ κ² κ΅¬ν νμκ° μμ§λ§ κ·Έ μμ μ¬κ·μ κ΅¬μ‘°κ° μμμ λ§νλ €λ κ²μ΄λ€.
- βοΈ μ¬κ· μκ³ λ¦¬μ¦μ λ°λ³΅ν΄μ νΈμΆνλ€κ° μΈμ κ° λλμΌ νλλ° μ΄λ₯Ό μν κ²½κ³ μ‘°κ±΄μ νμ κ°κ³ μμ΄μΌ νλ€.
- βοΈ μ μκ³ λ¦¬μ¦μμλ
if(n=1)
μ΄ κ²½κ³ μ‘°κ±΄μ΄λ€
- βοΈ μμ΄μ μ΄νμ ν΄λΉνλ€.
π νΌλ³΄λμΉ μμ΄
- βοΈ νΌλ³΄λμΉ μμ΄μ λ€μκ³Ό κ°λ€.
- βοΈ μ²« λ νμ 1μ΄κ³ , λλ¨Έμ§ νμ κ°κ° μ§μ λ νμ λν κ°μ΄λ€.
- βοΈ $f_n = f_{n-1} + f_{n-2}, f_1 = f_2 = 1$
- βοΈ μ΄κ²μ μ¬κ· μκ³ λ¦¬μ¦μΌλ‘ ꡬννλ©΄ λ€μκ³Ό κ°λ€.
fib(n):
if (n = 1 or n = 2)
return 1
else
return fib(n-1) + fib(n-2)
- βοΈ μ΄λ μ¬κ· μκ³ λ¦¬μ¦μΌλ‘ ꡬνν μΉλͺ
μ μΈ μλ€.
- βοΈ μκ°μ΄ λ무 λ§μ΄ 걸리기 λλ¬Έμ΄λ€.
- βοΈ μ§μν¨μμ μΌλ‘ μ¦κ°νλ€λ λλμ΄λ€.
- βοΈ μ΄λ κ² μμ²λ μκ°μ΄ 걸리λ μ΄μ λ ν λ² κ³μ°ν΄λμ κ²°κ³Όλ₯Ό κ³μ νΈμΆνμ¬ μ§μν¨μμ μΈ μ€λ³΅μ μΌμΌν€κΈ° λλ¬Έμ΄λ€.
- βοΈ μ΄ λ¬Έμ λ₯Ό μλμ κ°μ΄ κ³μ°νλ©΄
fib_fase(100)
μ μ²λ§ λΆμ 1μ΄λ κ±Έλ¦¬μ§ μλλ€.
fib_fast(n):
f[1] β f[2] β 1 βοΈ "f[2] β 1"κ³Ό "f[1] β 1"μ νκΊΌλ²μ μ μ΄λμ κ²
for i β 3 to n
f[i] β f[i-1] + f[i-2]
return f[n]
- βοΈ μ¬κ·λ λ¬Έμ λ₯Ό ν΄κ²°νλ μ μ©ν λꡬμ΄μ§λ§ μλͺ» μ°λ©΄ μΉλͺ
μ μ΄λ€.
- βοΈ μλ£κ΅¬μ‘°μ μκ³ λ¦¬μ¦μμλ μ£Όλ‘ μ¬κ·κ° μ μ©ν κ²½μ°μ μ¬μ©νλ€.