python 귀속 관련 지식 총결산

차례차례 돌아오는 소리를 들으면 늘 매우 높다고 느낀다. 왜?낯설기 때문에, 그렇다면 오늘은 도대체 무엇인지 한마디 기억하자.
하지만 우선 서두르지 말고 질문 하나를 봅시다. 10의 계승 (10!) 을 구하세요.
x의 계승을 구하는 것은 사실 1부터 순서대로 x까지 곱하는 것이다.그러면 10의 승급은 1*2*3*4*5*6*7*8*9*10입니다.

1. 비귀속 방식 계승


만일 우리가 귀속을 접촉한 적이 없는 상황에서 어떻게 이런 문제를 해결할 수 있겠는가?
가장 간단하고 거친 방식은 직접print(1*2*3*4*5*6*7*8*9*10)로 결과를 내면 됩니다. 결과는 3628800입니다.
그러나 이런 방식은 분명히 우리가 원하는 것이 아니다. 그러면 for순환의 방식으로 해결해 볼 수 있다.

def factorial(n):
 """
 n  
 """
 result = n
 for i in range(1, n):
  result *= i

 return result

if __name__ == '__main__':
 print(factorial(10))

2. 귀속 방식은 승급을 구한다.


1. 귀속은 무엇입니까?


여러분은 틀림없이 이런 이야기를 들어보셨을 거라고 믿습니다.
옛날에 산이 하나 있었고, 산에 절이 있었고, 절에 한 늙은 중이 이야기를 하고 있었는데, 무슨 말을 했습니까?
옛날에 산이 하나 있었고, 산에 절이 있었고, 절에 한 늙은 중이 이야기를 하고 있었는데, 무슨 말을 했습니까?
옛날에 산이 하나 있었고, 산에 절이 있었고, 절에 한 늙은 중이 이야기를 하고 있었는데, 무슨 말을 했습니까?
      ...
사실 이런 것은 귀속이다. 말하자면 스스로 자신을 인용하는 것이다.
그러면 역귀는 함수에 사용됩니다.

def factorial():
 factorial() 

if __name__ == '__main__':
 factorial()
함수factorial를 호출할 때 함수에서 계속 호출factorial하면 위의 이야기와 같이 무궁무진하게 귀속할 수 있다.
이야기를 하는 스님이 피곤하고 어지럽고 컴퓨터의 메모리가 다운될 때까지.
그러나 중요한 점은 귀속은 문제를 해결하는 일종의 방식일 뿐이다. 예를 들어 위의 계급을 구하면 나는 for순환처럼 해결한다.

2. 귀속 해결 단계


만약에 귀속으로 위의 계승 문제를 해결하려면 귀속의 전체 사상을 한층 더 이해할 수 있다.
점차적으로 돌아가는 전체적인 사상은 하나의 큰 문제를 하나하나의 작은 문제로 분해하여 문제를 다시 계속 분해할 방법이 없을 때까지 다시 문제를 해결하는 것이다.
그러면 귀속식 함수는 두 가지 조건을 만족시켜야 한다.
  • 기선 조건: 문제는 최소 문제로 분해될 수 있으며, 기선 조건을 만족시킬 때 귀속은 더 이상 진행되지 않는다
  • 귀속 조건: 문제 계속 분해
  • 이 사상으로 귀속적인 방식으로 계승 문제를 해결할 수 있다.
    
    10! = 10 * 9! # 10 10 * 9 
    9! = 9 * 8!  # 9 9 * 8 
    8! = 8 * 7!
    ...
    2! = 2 * 1!
    1! = 1
    보시다시피 마지막에 1까지 분해되었을 때 더 이상 분해할 수 없습니다. 그러면 1은 기선 조건입니다.
    
    def factorial(n):
     #  , , 
     if n == 1:
      return 1
    
     #  , n 1 , 
     return n * factorial(n - 1)
    
    if __name__ == '__main__':
     print(factorial(10))

    3. 총결산

  • 귀속: 단지 문제를 해결하는 한 방식일 뿐, 반드시 사용해야 하는 것은 아니다
  • 귀속식 함수: 함수 자체 호출
  • 귀속의 2가지 조건: 기선 조건(만족하면 귀속되지 않음), 귀속 조건(만족하면 기선 귀속)
  • 귀속은 순환과 유사: 기본적으로 서로 대체할 수 있다
  • 순환적으로 작성하는 것은 비교적 쉽고 읽는 것은 비교적 어렵다.차례로 작성하기는 어렵지만 읽기는 쉽다
  • 이상은python 귀속 관련 지식 총결에 대한 상세한 내용입니다.python 귀속에 관한 더 많은 자료는 저희 다른 관련 문장에 주목하세요!

    좋은 웹페이지 즐겨찾기