하노이 탑 예제

문제를 재귀적으로 해결하는 열쇠는 우리가 찾고있는 동일한 일반적인 해결 절차가 적용되고 전체 솔루션이 다음과 같은 간단한 방법으로 발견되는 작은 하위 문제의 컬렉션으로 나눌 수 있음을 인식하는 것입니다. 그 하위 문제의 솔루션. 따라서 생성된 각 하위 문제는 « 더 작음 »이면 기본 사례에 결국 도달할 수 있습니다. 하노이 탑: 하노이 탑은 문제 해결에 대한 심리 연구에 자주 사용됩니다. 또한 신경 심리적 진단 및 집행 기능의 치료를 위한 런던의 탑이라고 불리는 이 작업의 변종이 존재합니다. 2007년, 하노이 타워 문제의 개념은 레이튼 교수와 퍼즐 6, 83, 84의 악마 상자에 사용되었지만 디스크는 팬케이크로 변경되었습니다. 퍼즐은 레스토랑의 요리사가 원래 퍼즐의 기본 원칙 (즉, 팬케이크가 더 큰 팬케이크 o를 넣을 수 없다는 세 개의 접시로 이동 할 수있는 세 접시)와 함께 한 접시에서 다른 접시로 팬케이크 더미를 이동해야하는 딜레마를 기반으로했습니다. nto 작은 것, 등등) 인도의 고대 사원에 대한 이야기가 있습니다 (일부는 베트남에 있다고 말합니다 – 따라서 하노이라는 이름은) 64 개의 황금 디스크로 둘러싸인 3 개의 타워가있는 큰 방이 있습니다. 3 페그 버전은 오랫동안 알려진 바와 같이 간단한 재귀 솔루션을 가지고 있지만, 네 개의 페그 (Reve의 퍼즐이라고함)와 하노이 의 타워 문제에 대한 최적의 솔루션은 2014 년까지 확인되지 않았으며, 4 개 이상의 페그의 경우 프레임-스튜어트 알고리즘이 최적이라는 증거는 2018년에 데몬티스에 의해 주어졌습니다. [19] [20] 이 전설에는 많은 변형이 있습니다. 예를 들어, 어떤 이야기에서 사원은 수도원이며, 사제는 승려입니다. 성전이나 수도원은 베트남 하노이를 포함하여 세계의 다른 지역에 있다고 할 수 있으며, 어떤 종교와도 연관될 수 있다.

일부 버전에서는 탑이 세상의 시작 부분에 만들어졌거나 사제나 승려가 하루에 한 번만 움직일 수 있다는 사실과 같은 다른 요소가 도입됩니다. 하노이 타워 솔루션에서는 이동해야 할 가장 큰 디스크를 다시 저주합니다. 즉, 이동하려는 타워에서 가장 큰 디스크인 디스크를 매개 변수로 하는 재귀 함수를 작성합니다. 우리의 함수는 또한 타워를 이동해야하는 페그 (소스), 페그 (dest) 및 이 작업을 수행하기 위해 일시적으로 사용할 수있는 다른 페그 (예비)를 나타내는 세 가지 매개 변수를 취합니다. 간단히 말해서 알고리즘은 일련의 작업입니다. 세 개의 디스크 스택을 A에서 C로 이동하기 위해 수행한 단계를 잊어버리지 않았으면 합니다. 또한 이러한 단계는 하노이 타워 문제를 해결하는 알고리즘이라고 말할 수 있습니다. 임무는 배열의 순서를 위반하지 않고 다른 타워에 모든 디스크를 이동하는 것입니다. 하노이 타워에 따라야 할 몇 가지 규칙은 – 하노이의 타워는 다양한 경쟁 프로그래밍 과제에 사용되는 일반적인 동적 프로그래밍 문제입니다.

이 기사에서, 나는 당신이 지금 하노이 퍼즐의 탑과 그것을 해결하는 방법을 이해할 수 있기를 바랍니다. 또한 알고리즘, 알고리즘의 중요성, 재귀, 의사 코드, 시간 복잡성 및 공간 복잡성에 대한 몇 가지 기본적인 이해를 제공하려고 노력했습니다.