- 비가 같은 수열!
연속된 두 항의 비가 일정한 수열
2 6 18 54 162 486 1458 4374
3 3 3 3 3 3 3 공비(r)
=> 두 항의 비가 3인 등비 수열
등비 수열 규칙성을 이용해서 일반항을 구할 수 있다.
2 6 18 54 162 486 1458 4374
an / a1 = 3^(n-1) => an = a1 * r^(n-1)
- 등비 중항
2 6 18 54 162 486 1458
an-1 * an+1 = an^2
- 등비 수열의 합
규칙성을 이용해서 모든 항들의 총합을 구할 수 있다.
sn = (a1 r^0) + (a1 r^0) + (a1 r^0) + ... + (a1 r^(n-2)) + (a1 r^(n-1)) # r의 0승부터 시작했으므로 끝항은 n-1
r sn = (a1 r^1) + (a1 r^1) + (a1 r^1) + ... + (a1 r^(n-1))) + (a1 + r^(n)) # 위의 식에 r을 전부 곱해준다
=> 위에서 아래를 빼주자!
=> (1-r)sn = (a r^0) - (a1 r^(n)) => sn = (a1 r^0) - (a1 r^n) / (1 - r)
sn => a1 * (1 - (r^n)) / (1 - r)
- 실습1
다음 수열의 일반항을 구해보자.
2 4 8 16 32 64
an = a1 r^(n-1)
an = 2 2^(n-1)
5 15 45 135 405 1215
an = a1 r^(n-1)
an = 5 3^(n-1)
- 실습2
다음 수열에서 a2과 a6의 등비중항을 구해보자.
2 4 8 ? 32 64
(an-1 an+1) = an^2
(4 64) = an^2
16 = an
5 15 45 ? 405 1215
(an-1 an+1) = an^2
(45 405 = an^2)
135 = an
- 실습3
다음 수열의 합을 구해보자.
2 4 8 16 32 64
sn = a1 (1 - r^n) / (1 - r)
2 (1 - (2^6)) / 1 - 2
126
5 15 45 135 405 1215
sn = a1 (1 - r^n) / (1 - r)
5 (1 - (3^6)) / (1 - 3)
1820
- 다음 수열을 보고 n번째 항의 값을 출력하는 프로그램을 만들어보자.
an = {2, 4, 8, 16, 32, 64, 128, 256, ...}
inputN1 = int(input('a1 입력 : '))
inputR = int(input('공비 입력 : '))
inputN = int(input('n 입력 : '))
valueN = 0
n = 1
while n <= inputN:
if n == 1: # 첫번째항
valueN = inputN1 # 첫번째항을 그대로 넣어준다
print('{}번째 항의 값 : {}'.format(n, valueN))
n += 1
continue
valueN *= inputR
print('{}번째 항의 값 : {}'.format(n, valueN))
n += 1
print('{}번째 항의 값 : {}'.format(inputN, valueN))
[공식을 사용한 코딩]
an = a1 * r^(n-1)
inputN1 = int(input('a1 입력 : '))
inputR = int(input('공비 입력 : '))
inputN = int(input('n 입력 : '))
valueN = 0
# an = a1 * r^(n-1)
valueN = inputN1 * (inputR ** (inputN -1))
print('{}번째 항의 값 : {}'.format(inputN, valueN))
- 다음 수열을 보고 n번째 항까지의 합을 출력하는 프로그램을 만들어보자.
an = {5, 15, 45, 135, 405, 1215, 3645, ... }
inputN1 = int(input('a1 입력 : '))
inputR = int(input('공비 입력 : '))
inputN = int(input('n 입력 : '))
valueN = 0
sumN = 0
n = 1
while n <= inputN:
if n == 1: # 첫번째항
valueN = inputN1 # 첫번째항을 그대로 넣어준다
sumN = valueN
print('{}번째 항까지의 합 : {}'.format(n, sumN))
n += 1
continue
valueN *= inputR
sumN += valueN
print('{}번째 항까지의 합 : {}'.format(n, sumN))
n += 1
print('{}번째 항까지의 합 : {}'.format(inputN, sumN))
[공식을 사용한 코딩]
등비 수열(합) 공식 : sn = a1 * (1 - r^n) / (1 - r)
inputN1 = int(input('a1 입력 : '))
inputR = int(input('공비 입력 : '))
inputN = int(input('n 입력 : '))
valueN = 0
sumN = 0
# 등비 수열(합) 공식 : sn = a1 * (1 - r^n) / (1 - r)
sumN = inputN1 * (1 - (inputR ** inputN)) / (1 - inputR)
print('{}번째 항까지의 합 : {}'.format(inputN, int(sumN)))
이 글은 제로베이스 데이터 취업 스쿨의 강의자료 일부를 발췌하여 작성되었습니다.