이 글에서는 N-step 문제를 해결하는 Python의 방법을 주로 소개하고, step 문제에 대해 간략하게 설명하고, step 문제를 풀기 위한 재귀, 재귀 알고리즘을 활용하여 Python의 관련 조작 기술을 예제 형식으로 분석합니다. 다음을 참조할 수 있습니다.
이 문서의 예는 N 순서 단계의 문제를 해결하는 Python의 방법을 설명합니다. 참고를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
질문: 건물에는 N개의 계단이 있습니다. 토끼는 매번 1, 2, 3단계씩 점프할 수 있습니다.
Afanty의 분석:
규칙을 찾는 데 이런 종류의 문제가 발생하면 레벨 1에는 몇 개의 움직임이 있습니까? 레벨 2에는 몇 개의 동작이 있나요? 레벨 3에는 몇 개의 동작이 있나요? 레벨 4에는 몇 개의 동작이 있나요? 레벨 5에는 몇 개의 동작이 있나요?
맞아, 규칙은 끝났어!
오류가 발생하기 쉬운 점: 처음으로 걷는 레벨 1과 두 번째로 레벨 2를 걷는 것이 처음으로 걷는 레벨 2와 두 번째로 레벨 1을 걷는 것과 다르기 때문에 이는 조합 문제가 아닙니다
다음은 Python 코드의 재귀적 구현입니다.
def allMethods(stairs): ''''' :param stairs:the numbers of stair :return: ''' if isinstance(stairs,int) and stairs > 0: basic_num = {1:1,2:2,3:4} if stairs in basic_num.keys(): return basic_num[stairs] else: return allMethods(stairs-1) + allMethods(stairs-2) + allMethods(stairs-3) else: print 'the num of stair is wrong' return False
물론 비재귀적 방법을 사용하여 구현할 수도 있습니다. 다음은 재귀적 방법을 기반으로 한 코드입니다.
def allMethod(stairs): '''''递推实现 :param stairs: the amount of stair :return: ''' if isinstance(stairs,int) and stairs > 0: h1,h2,h3,n = 1,2,4,4 basic_num = {1:1,2:2,3:4} if stairs in basic_num.keys(): return basic_num[stairs] else: while n <= stairs: temp = h1 h1 = h2 h2 = h3 h3 = temp + h1 + h2 return h3 else: print 'the num of stair is wrong' return False
자, 위는 재귀의 사용과 재귀적인 방법을 구현하는 과정입니다.
관련 권장 사항:
몬테 카를로 방법을 통해 정적분을 계산하는 Python 프로그래밍에 대한 자세한 설명
Python의 하위 프로세스는 Linux 명령을 일괄 실행
위 내용은 N차 단계 문제를 해결하는 Python의 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!