>  기사  >  백엔드 개발  >  Python으로 하노이 타워 메소드 구현

Python으로 하노이 타워 메소드 구현

高洛峰
高洛峰원래의
2017-03-27 16:37:441694검색

하노이 탑은 인도의 고대 전설에 나오는 교육용 장난감입니다. 하노이탑의 움직임은 재귀함수로도 볼 수 있습니다.

a, b, c 열에 번호를 매깁니다. a에서 c로 모든 디스크를 이동하는 방법은 다음과 같습니다.
a에 디스크가 하나만 있으면 c로 직접 이동할 수 있습니다. a에 N개의 디스크가 있는 경우, 이는 1개의 디스크(섀시) + (N-1)개의 디스크가 있는 것으로 간주할 수 있습니다. 먼저 (N-1)개의 디스크를 b로 이동한 다음 Move의 마지막 부분을 이동해야 합니다. 하나의 디스크를 c로 이동한 다음 b의 디스크 (N-1)개를 c로 이동합니다.
입력 n, a, b, c에 대해 이동 단계를 인쇄하는 함수를 작성하세요.
move(n, a, b, c)
예를 들어 move(2를 입력합니다. , 'A', 'B', 'C'), 인쇄:
A –> B
A –> C
B –>
하노이 타워: 하노이 타워(일명 하노이 타워)는 인도의 고대 전설에서 파생된 교육용 장난감입니다. 브라흐마는 세상을 창조했을 때 세 개의 다이아몬드 기둥을 만들었고, 한 기둥에는 64개의 금 원반이 아래에서 위로 크기대로 쌓여 있었습니다. 브라흐마는 브라만에게 디스크를 바닥부터 크기 순서대로 다른 기둥에 재배치하라고 명령했습니다. 또한 작은 원반에서는 원반을 확대할 수 없으며 세 개의 기둥 사이에서 한 번에 하나의 원반만 이동할 수 있다고 규정되어 있습니다.



코드는 다음과 같이 구현됩니다. Python으로 하노이 타워 메소드 구현

def move(n, a, b, c):
    if n==1:
        print a,'-->',c
        return
    else:
        move(n-1,a,c,b)  #首先需要把 (N-1) 个圆盘移动到 b 
        move(1,a,b,c)    #将a的最后一个圆盘移动到c
        move(n-1,b,a,c)  #再将b的(N-1)个圆盘移动到c
move(4, 'A', 'B', 'C')

위 내용은 Python으로 하노이 타워 메소드 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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