>백엔드 개발 >파이썬 튜토리얼 >N차 단계 문제를 해결하는 Python의 방법

N차 단계 문제를 해결하는 Python의 방법

不言
不言원래의
2018-04-27 15:21:243190검색

이 글에서는 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 &#39;the num of stair is wrong&#39;
    return False


자, 위는 재귀의 사용과 재귀적인 방법을 구현하는 과정입니다.

관련 권장 사항:

몬테 카를로 방법을 통해 정적분을 계산하는 Python 프로그래밍에 대한 자세한 설명

Python의 하위 프로세스는 Linux 명령을 일괄 실행



위 내용은 N차 단계 문제를 해결하는 Python의 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.