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. 총결산
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.