하노이 타워(일명 하노이 타워)는 인도의 고대 전설에서 파생된 교육용 장난감입니다. 브라흐마는 세상을 창조했을 때 세 개의 다이아몬드 기둥을 만들었고, 한 기둥에는 64개의 금 원반이 아래에서 위로 크기대로 쌓여 있었습니다. 브라흐마는 브라만에게 디스크를 바닥부터 크기 순서대로 다른 기둥에 재배치하라고 명령했습니다. 또한 작은 원반에서는 원반을 확대할 수 없으며 세 개의 기둥 사이에서 한 번에 하나의 원반만 이동할 수 있다고 규정되어 있습니다.
이후 이 전설은 하노이탑 게임으로 발전했으며, 게임 플레이는 다음과 같습니다.
1 A, B, C 세 개의 극이 있습니다. A 기둥에는 여러 개의 접시가 있습니다
2. 한 번에 하나씩 접시를 옮기고, 작은 접시는 큰 접시 위에만 쌓을 수 있습니다
3. A에서 극 C로
다음 예에서는 하노이 타워 알고리즘의 구현을 보여줍니다.
/* author by w3cschool.cc MainClass.java */ public class MainClass { public static void main(String[] args) { int nDisks = 3; doTowers(nDisks, 'A', 'B', 'C'); } public static void doTowers(int topN, char from, char inter, char to) { if (topN == 1){ System.out.println("Disk 1 from " + from + " to " + to); }else { doTowers(topN - 1, from, to, inter); System.out.println("Disk " + topN + " from " + from + " to " + to); doTowers(topN - 1, inter, from, to); } } }
위 코드를 실행한 결과는 다음과 같습니다.
Disk 1 from A to C Disk 2 from A to B Disk 1 from C to B Disk 3 from A to C Disk 1 from B to A Disk 2 from B to C Disk 1 from A to C
위는 자바 예시입니다. - 하노이탑 알고리즘의 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!