귀속 함수의 정의와 몇 가지 작은 예

4608 단어
귀속 함수
(1) 귀속 함수는 무엇입니까?
우리는 모두 한 함수가 다른 함수를 호출할 수 있다는 것을 안다.만약 이 함수가 내부에서 자신을 호출한다면, 이 함수를 귀속 함수라고 부른다.
(2) 귀속 함수의 작용
예를 들면, 우리가 계승 n을 계산하자!1 * 2 * 3 * ... * n
 1 #
 2 n=4      # 4 
 3 result=1
 4 i=1
 5 while i<=4:
 6     result=result*i
 7     i+=1
 8  
 9 print(result)
10 
11 #
12 def test1(n):# n 
13     if n==1:
14         return 1
15     return n * test1(n-1)
16  
17 print(test1(5))
18 #1 
19 #2 , : 
20 #3 ( )

 
 
출력 결과:
1 24
2 120
3 [Finished in 0.4s]

 
상기 두 가지 방법의 대비를 통해 알 수 있듯이 귀속 함수의 작용은 순환하는 방법의 효과와 같다. 즉, 귀속 함수는 본질적으로 하나의 방법의 순환 호출이다. 주의: 사순환이 나타날 수 있다.따라서 귀속 함수를 사용할 때 귀속의 경계 (즉 순환을 언제 종료하는지) 를 정의해야 한다.
귀속 함수의 또 다른 사례는 피보나치 수열이다.
피보나치 수열: 1, 2, 3, 5, 8, 13...(이 수열에는 n개의 숫자가 있습니다. 세 번째 숫자부터: 수치 = 이전 숫자 + 이전 숫자)
즉, n= (n-2) + (n-1)
 1 def get_num(n):# n 
 2     if n==1 or n==2:
 3         return 1
 4     return get_num(n-1) + get_num(n-2)
 5  
 6 # 
 7 nums=[]
 8 for i in range(1,21):
 9     nums.append(get_num(i))#get_num 
10  
11 print(nums)

출력 결과:
1 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765]
2 [Finished in 0.4s]

상기 두 사례는 귀속 함수의 고전적인 사례로 그 사용 방법을 기억해야 한다.주의: 실제 사용에서 귀속 함수는 소모 시간이 비교적 길기 때문에 (for순환과while 순환에 비해) 거의 사용하지 않습니다.
 
다음으로 전송:https://www.cnblogs.com/tianyiliang/p/7775071.html

좋은 웹페이지 즐겨찾기