Python 재 귀 함수 정의 및 용법 예제

1941 단어 Python역귀 함수
본 논문 의 사례 는 Python 재 귀 함수 의 정의 와 용법 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
역귀 함수
함수 내부 에서 다른 함 수 를 호출 할 수 있 습 니 다.만약 한 함수 가 내부 에서 자신 자 체 를 호출 한다 면,이 함 수 는 귀속 함수 이다.
예 를 들 어 계단 n 을 계산 합 시다!=1*2*3*...*n,함수 fact(n)로 표시 하면 알 수 있 습 니 다.
fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n
따라서 fact(n)는 n*fact(n-1)로 표시 할 수 있 으 며 n=1 일 때 만 특수 처리 가 필요 합 니 다.
그래서 fact(n)는 재 귀적 인 방식 으로 쓰 면 다음 과 같다.

def fact(n):
if n==1:
  return 1
return n * fact(n - 1)

위 에는 재 귀 함수 가 있다.해 볼 수 있다:

>>> fact(1)
1
>>> fact(5)
120
>>> fact(100)
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000L

만약 우리 가 fact(5)를 계산한다 면 함수 정의 에 따라 계산 과정 을 다음 과 같이 볼 수 있 습 니 다.

===> fact(5)
===> 5 * fact(4)
===> 5 * (4 * fact(3))
===> 5 * (4 * (3 * fact(2)))
===> 5 * (4 * (3 * (2 * fact(1))))
===> 5 * (4 * (3 * (2 * 1)))
===> 5 * (4 * (3 * 2))
===> 5 * (4 * 6)
===> 5 * 24
===> 120

재 귀 함수 의 장점 은 정의 가 간단 하고 논리 가 뚜렷 하 다 는 것 이다.이론 적 으로 모든 재 귀 함 수 는 순환 방식 으로 쓸 수 있 지만 순환 의 논 리 는 재 귀 보다 뚜렷 하지 않다.
재 귀 함 수 를 사용 하려 면 스 택 이 넘 치지 않도록 주의해 야 합 니 다.컴퓨터 에서 함수 호출 은 스 택(stack)이라는 데이터 구 조 를 통 해 이 루어 집 니 다.한 함수 호출 에 들 어 갈 때마다 스 택 프레임 을 추가 하고 함수 가 돌아 올 때마다 스 택 프레임 을 한 층 줄 입 니 다.스 택 의 크기 가 무한 한 것 이 아니 기 때문에 재 귀적 호출 횟수 가 너무 많 으 면 스 택 이 넘 칠 수 있 습 니 다.fact(10000)를 계산 해 볼 수 있 습 니 다.

def digui(n):
  sum = 0
  if n<=0:
    return 1
  else:
    return n*digui(n-1)
print(digui(5))

더 많은 파 이 썬 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기