재귀함수

· Algorithm
재귀 함수로 구현할 수 있는 대표적인 문제는 바로 팩토리얼 (Factorial) 문제이다. 팩토리얼이란 수학에서 그 수보다 작거나 같은 모든 자연수의 곱이다. n이 하나의 자연수일 때, 1부터 n 까지의 모든 자연수의 곱을 n! (n 팩토리얼) 로 표현하는 것이다. 팩토리얼을 구하는 방식은 두 가지로 떠올릴 수 있다. 반복문을 통하여 자연수의 곱을 구하는 방식 재귀 함수를 통하여 자연수의 곱을 구하는 방식 재귀 함수로 이 문제를 해결하였을 때의 장점은 무엇일까? 바로 소스코드가 간결해진다는 것이다. 그러한 이유는 재귀 함수가 수학의 점화식 (재귀식)을 그대로 소스코드로 옮겼기 때문이다. 수학에서 점화식은 특정한 함수를 자신보다 더 작은 변수에 대한 함수와의 관계로 표현한 것을 의미하는데 팩토리얼을 수학적..
· Algorithm
앞의 게시물에서도 이야기 했듯이 재귀 함수에는 반드시 적절한 종료 조건이 존재해야 한다. 따라서 문제를 해석하고 알고리즘을 구현할 때 언제 어떻게 재귀 호출을 종료하고 return 해야 하는지를 생각해야 할 것이다. 종료 조건을 추가한 재귀 함수에 대한 예시 소스코드이다. def recursive(i): if i == 100 : return print(i,"번째 재귀함수가 ",i+1,"번째 재귀함수 호출") recursive(i+1) print(i,"번째 재귀함수 종료") recursive(1) 이전의 예시와 유사하지만 recursive 함수에서 ' i '라는 매개변수가 존재한다. 먼저 가장 마지막 줄인 recursive(1)의 구문으로 재귀 함수가 매개변수 i에 1의 값을 갖고 호출된다. if 조건문에..
· Algorithm
재귀 함수란 쉽게 이야기해서 함수내에서 자기 자신을 다시 호출하는 함수를 말한다. 즉, 함수A가 함수 내에서 자기 자신인 함수A를 호출하는 것이다. 간단한 예시로 아래와 같은 코드를 들 수 있다. def recursive(): print("재귀 함수 호출") recursive() recursive() 위의 예시에 대해 해석해보면 먼저 가장 아랫줄의 코드를 통해서 함수 recursive가 호출되게 된다. 그 이후 함수 내에서 "재귀 함수 호출" 이라는 메시지를 출력하게 되고 다음으로 다시 recursive 함수를 호출한다. 다음 호출에도 똑같은 과정이 반복될 것이고 따라서 무한으로 메시지가 출력되며 계속 함수가 호출되게 된다. 물론 파이썬에서는 재귀의 최대 깊이가 존재하기 때문에 어느정도 재귀 함수가 호출..
공대생안씨
'재귀함수' 태그의 글 목록