문제
초항 a1, a2가 정해져 있고 ai=b⋅ai−1+c⋅ai−2 (i≥3)이 성립하는 수열 a에서, n이 무한히 증가할 때
an−1an의 극한을 구하여라.
이 값은 항상 수렴함을 증명할 수 있다.
입력
첫 번째 줄에 정수 b, c, a1, a2가 공백으로 구분되어 주어진다. (1≤b,c,a1,a2≤109)
출력
식의 극한값을 출력한다. 절대/상대 오차는 10−6까지 허용한다.
풀이
수열의 항과 극한의 관계를 알고 있었으면 무난히 풀리는 문제였다.
limx→∞an−1an=α(α>0)라 하면,
limx→∞an−1an=limx→∞an−1ban−1+can−2=limx→∞(b+can−1an−2)=b+αc=α
∵α2−bα−c=0,α=2b+b2+4c
∴limx→∞an−1an=2b+b2+4c
풀다보니 코딩 요소가 하나도 안들어가있었다. 처음에는 직접 일반항을 구해보려 시도하였으나, 식이 더 복잡해지는 바람에 포기했다. 오랜만의 수학문제라 처음에는 헤맸지만 나름 재밌었던 문제였다. (다른풀이방법도 찾아보면 더 재밌을 것 같기도 하다.)
코드
import sys, math
b, c, a1, a2 = map(int, sys.stdin.readline().split())
print((b+math.sqrt(b**2+4*c))/2)
2022 제1회 미적확통컵 이동