재귀는 문제를 해결하기 위해 함수가 자신을 호출하는 프로그래밍 기술입니다. 이 기사에서는 목록에 있는 정수의 합을 찾기 위해 Python에서 재귀를 구현하는 방법과 기타 일반적인 재귀 응용 프로그램에 중점을 둘 것입니다.
함수 listSum은 정수 목록을 가져와 그 합계를 반환합니다. 기본 재귀 구현은 다음과 같습니다.
<code class="python">def listSum(ls): # Base condition: if the list is empty, return 0 if not ls: return 0 # Recursive call with the rest of the list return ls[0] + listSum(ls[1:])</code>
위 재귀를 최적화하기 위해 테일 콜 재귀를 사용할 수 있습니다. 여기에는 목록과 함께 현재 결과를 재귀 호출에 전달하는 작업이 포함됩니다.
<code class="python">def listSum(ls, result): if not ls: return result return listSum(ls[1:], result + ls[0])</code>
중간 목록 생성을 방지하려면 현재 요소의 인덱스를 재귀 호출:
<code class="python">def listSum(ls, index, result): if index == len(ls): return result return listSum(ls, index + 1, result + ls[index])</code>
더 캡슐화된 접근 방식을 선호하는 경우 listSum 내에서 내부 함수를 정의하여 재귀 논리를 처리할 수 있습니다.
<code class="python">def listSum(ls): def recursion(index, result): if index == len(ls): return result return recursion(index + 1, result + ls[index]) return recursion(0, 0)</code>
편의를 위해 기본 매개변수를 사용하여 함수 호출을 단순화할 수 있습니다.
<code class="python">def listSum(ls, index=0, result=0): if index == len(ls): return result return listSum(ls, index + 1, result + ls[index])</code>
재귀를 적용하여 거듭제곱을 계산할 수도 있습니다. . 밑수와 지수를 사용하는 거듭제곱 함수를 고려하세요.
<code class="python">def power(base, exponent): if exponent <= 1: return base return base * power(base, exponent - 1)</code>
테일 호출 재귀를 사용하여 전력을 최적화하려면:
<code class="python">def power(base, exponent, result=1): if exponent <= 0: return result return power(base, exponent - 1, result * base)</code>
위 내용은 Python에서 재귀를 효과적으로 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!