등비수열(Geometric Sequence)

Sooin Yoon·2025년 3월 17일

등비수열

: 연속된 두 항의 비가 일정한 수열

등비수열의 일반항

: an = an * r^(n-1)

ex) 수열을 보고 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
        n += 1
        continue

    valueN *= inputR
    n += 1

print('{}번째 항의 값: {}'.format(inputN, valueN))

만약 등비수열의 일반항을 안다면

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
n = 1
sumN = 0
while n <= inputN:
   if n == 1:
       valueN = inputN1
       sumN += valueN
       n += 1
       continue

   valueN *= inputR
   sumN += valueN
   n += 1

print('{}번째 항까지 합: {}'.format(inputN, sumN))

근데 등비수열의 합을 알고 있다면

sn = a1*(1-r^n) / (1-r)

sumN = inputN1 * (1-(inputR ** inputN)) / (1-inputR)
print('{}번째 항까지 합: {}'.format(inputN, int(sumN)))

0개의 댓글