하노이 탑은 인도의 고대 전설에 나오는 교육용 장난감입니다. 하노이탑의 움직임은 재귀함수로도 볼 수 있습니다.
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개의 금 원반이 아래에서 위로 크기대로 쌓여 있었습니다. 브라흐마는 브라만에게 디스크를 바닥부터 크기 순서대로 다른 기둥에 재배치하라고 명령했습니다. 또한 작은 원반에서는 원반을 확대할 수 없으며 세 개의 기둥 사이에서 한 번에 하나의 원반만 이동할 수 있다고 규정되어 있습니다.
코드는 다음과 같이 구현됩니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!