계차수열이란 어떤 수열의 인접하는 두 항의 차로 이루어진 또 다른 수열을 의미한다. 아래 수열로 예시를 들어 보겠다.
= 1, 3, 10, 22, 39 .....
에서 규칙을 찾기가 힘들다... 여기서 각 항의 차이를 수열로 나열 해보겠다.
= 2, 7, 12, 17....
여기서 은 공차가 5인 등차 수열이다.
이와 같은 경우 은 의 계차 수열이라 할 수 있다.
- 일반항을 구하기 위해 먼저 을 관련 식으로 정리 한다.
=
= +
= + +
= + + .... +
- 수열 b의 일반항을 구한다.
수열 b는 등차 수열이므로 으로 나타낸다.
- 위 식에서
+ .... + 부분은 수열 b의 n-1 항까지 등차수열의 합 이므로
일반항을 구하고
n-1 까지의 등차수열 합 공식을 사용해 n과 관련된 식으로 나타낸다.
- 1번에 나타난
= + + .... +
식에 대입해 정리하면 의 일반항이 나온다.
# 수열을 받고 규칙을 찾은뒤 n번째 항 값 출력 하기
list_a = [3, 7, 13, 21, 31, 43, 57]
n = int(input('n 입력 : '))
b1 = list_a[1] - list_a[0]
b2 = list_a[2] - list_a[1]
d = b2 - b1
print(f'계차 수열 b의 공차(d) = {d}')
b = 0
an = list_a[len(list_a)-1]
for i in range(n):
b += d
if ( i < len(list_a) ):
print(f'b{i+1}번째 항 : {b}')
print(f' a{i+1}번째 항 : {list_a[i]}')
else:
print(f'b{i+1}번째 항 : {b}')
an += b
print(f' a{i+1}번째 항 : {an}')
피보나치 수열 관한 내용은 다른 포스트에 게시했다.
https://velog.io/@wjdgotjd135/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%8B%A4%EC%9D%B4%EB%82%98%EB%AF%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
1부터 양의 정수 n까지의 정수를 모두 곱한 것을 의미한다.
0! = 1 (약속이다)
1! = 1
2! = 2 x 1
3! = 3 x 2 x 1
4! = 4 x 3 x 2 x 1
팩토리얼은 대표적인 재귀함수 문제이기도 하다. 재귀함수는 다른 포스트에서 다루도록 하겠다.
def Factorial(n):
if ( n == 1 or n == 0):
return 1
else:
return n*Factorial(n-1)
print(Factorial(5))