회고
|
2024. 6. 7. 18:54
[24.06.07] 99클럽 코테 스터디 19일차 TIL - 점화식과 대표적인 예제
1. 점화식
점화식이란 수열의 각 항이 이전 항들의 값을 이용해서 정의되는 식을 말한다. 즉 이전 항들의 값을 이용하여 다음 항의 값을 계산하는 방법을 말한다.
1.1 대표적인 점화식
대표적인 점화식에는 등차수열, 등비수열, 팩토리얼, 피보나치 수열 등이 있다.
1.1.1 등차수열
- 연속하는 두 항 사이의 차이가 일정한 수열이다.
- 점화식(일반항) : a_n = a_1 + (n-1)d
첫째항을 a_1, 공차를 d라고 했을 때 n번째 항은 구하는 수식이다.
def arithmetic_sequence(n, a_1, d):
if n == 1:
return a_1
else:
return arithmetic_sequence(n-1, a_1, d) + d
# 예시: 등차수열의 5번째 항을 구하는 경우 (첫 번째 항이 2이고, 공차가 3인 경우)
print(arithmetic_sequence(5, 2, 3)) # Output: 14
1.1.2 등비수열
- 연속하는 두 항 사이의 비가 일정한 수열이다.
- 점화식(일반항) : a_n = a_1 * r^{n-1}
첫째항을 a_1, 공비를 r이라 했을 때 n번째 항을 구하는 수식이다.
def geometric_sequence(n, a_1, r):
if n == 1:
return a_1
else:
return geometric_sequence(n-1, a_1, r) * r
# 예시: 등비수열의 5번째 항을 구하는 경우 (첫 번째 항이 2이고, 공비가 3인 경우)
print(geometric_sequence(5, 2, 3)) # Output: 162
1.1.3 팩토리얼
- 양의 정수 n에 대해 n부터 1까지의 모든 양의 정수를 곱한 값을 말한다.
- 점화식 : n! = n * (n-1)!
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
# 예시: 5!을 구하는 경우
print(factorial(5)) # Output: 120
1.1.4 피보나치 수열
- 첫번째 항과 두번째 항의 값은 1이고, 그 이후의 항은 이전 두 항의 합으로 이루어진 수열이다.
- 점화식 : F(n) = F(n-1) + F(n-2), F(1) = 1, F(0) = 1 (0부터 시작한다고 가정)
def fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
# 예시: 피보나치 수열의 7번째 항을 구하는 경우
print(fibonacci(7)) # Output: 13
1.2 점화식을 세우는 방법
- 패턴 파악 : 주어진 문제에서 어떠한 패턴이 있는 지 파악한다. (전체 문제를 부분 문제로 어떻게 나눌 수 있는지 파악한다.)
n번째 항이 n-1번째 항과 어떤 연관이 있는지를 중점으로 패턴을 파악해보는 연습이 필요하다. - 점화식 정의 : 발견한 패턴을 바탕으로 각 항을 이전 항들의 함수로 정의한다.
- 초기 조건 설정 : 수열의 시작 부분인 초기의 항을 정의한다. (대부분의 경우 첫 번째 몇 개의 항을 직접 지정해주어야 한다.)
- 점화식 검증 : 점화식이 주어진 문제를 저확히 모델링하는지 확인한다.
728x90
'회고' 카테고리의 다른 글
| [24.06.09] 99클럽 코테 스터디 21일차 TIL - 배열 초기화 방식 (0) | 2024.06.09 |
|---|---|
| [24.06.08] 99클럽 코테 스터디 20일차 TIL (0) | 2024.06.08 |
| [24.06.06] 99클럽 코테 스터디 18일차 TIL - 동적계획법(Dynamic Programming, DP) (1) | 2024.06.06 |
| [24.06.05] 99클럽 코테 스터디 17일차 TIL - 그리디 알고리즘 해결법, 증명 (1) | 2024.06.05 |
| [24.06.04] 99클럽 코테 스터디 16일차 TIL - 그리디 알고리즘 (0) | 2024.06.04 |
bbooo
Writer