파이썬에서 등차수열을 재귀함수 이용해서 표현할 수 있을까요?

조회수 1427회

파이썬에서 등차수열을 재귀함수 이용해서 표현할 수 있을까요? 마치 피보나치 수열을 재귀함수로 나타내는 것처럼요.

1 답변

  • 재귀함수는 n번째 항과 n-1번째 항의 관계만 기술하는 점화식과 개념이 똑같죠.

    등차수열의 점화식은

    A(n) = A(n-1)  + d
    

    이잖아요.

    이걸 재귀함수로 똑같이 쓸 수가 있습니다.

    def A(n):
        return A(n-1) + d
    

    그런데 등차수열 정의에서 빠진게 있죠. 초기항 A(0) = A_0 라는 것이요. 재귀함수에서도 똑같이 이게 필요합니다.

    def A(n):
        if n == 0:
            return A_0
        return A(n-1) + d
    

    이건 일반적인 식이고, A_0, d 의 값이 명시적으로 주어져야 어떤 등차수열인지가 완전히 정의됩니다. A(n) = 3n + 2 인 식이라면, A_0 는 2, d 는 3 인 것이고, 이 때의 재귀함수의 정의는

    def A(n):
       if n == 0:
         return 2
       return A(n-1) + 3
    

    이렇게 되겠습니다.

    등차수열의 일반식을 이용하는 것이 훨씬 계산상의 이득이 많기 때문에, 이렇게 재귀함수로 정의해서 사용하는 사람은 없겠지만, 개념상으로 이렇게 됩니다.

    피보나치 재귀함수도, 피보나치 점화식과 잘 비교해 보면 쉽게 이해가 됩니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)