E D R , A S I H C RSS

Hanoi Problem

��노�� 문��

  • ��노���� 문�� 모두들 ����?
  • 링 3개가 ��면 1���� 3� 링까�� 링들 ��동 ����는 것����.
  • 그때 링 ��기는 각�� 다르고, ������ 링�� ���� 밑�� ���� �� 링, 그 �� 다����로 ��링, ��런����로 고, ����로��� 그런����로 밖�� ����� 밖�� �����다.

���� ����

  • C++ 기 ����
  • Recursive Function

�� ����들

  • �� 같�� �� ����로 ����를 만든 �������� ��� ����.
����개발�������라���(������)�������� Source
����x���x� 30라�� C++HanoiProblem/����
������ . . C++HanoiProblem/����
����동 . 20라�� C++HanoiProblem/��동
��동���� ��림 100라�� ��블리 ����HanoiProblem/��동
����1��� 100라��JavaHanoiProblem/����


����들�� HanoiProblem ��는 것�� ��려�다면 ��게 ���� 문��라고(���� 그다�� ��려�� 문��는 라고) ����들�� 느� ��기 �� 무�� �� ��각�� 보는 것�� �����다.

��는 ����들�� HanoiProblem�� ���기 ���� 다�� �가��를 ����기 ����고 �����다.
  • ��귀���� 대�� ����
  • ��
  • 미로���러내려��기

��귀���� 대�� ����

��귀���가 ����되는 대������ 몇가��를 보�����다. ��귀�����������류가 다른데, 대������ ��류들����는 것�� �������다. ", ��귀���라는 것�� ��렇게� ����될 구나!" ��뮤������/�������, ��보나����, ��리검��, ����리��, ����문과 ��귀����로 반복문(while) 만들기 ���면 ������� �����다.

�� HanoiProblem ��게 ��기 ���� ����리��과 ����� ���� 문��만 보����다면, ��HanoiProblem ��렵게 느끼고 ������ 많�� 발������ 못�� 것�� 더 당����다고 ��각됩�다.

그리고 ��귀���를 만들 때 ������과 ��고보��물 가르�� ���다. ��������라면 ��귀���는 리�되는 값�� ��류(����)가 모두 동������ ��다는 것, ��귀������나는 ���� 근방���������� ��다는 �� ���고, ��고보��물로는 ������ ����를 그림��로 그리는 방법��나, �� ������는 방법 ��� ��.

��

������ ��리���� �� ���러(John Sweller) 교�는 ��과(sequence effect)라 부르는 것 ��명���다.

��과는 복���� 것과 ���� 것�� ��느 것�� �����느냐�� 따라 문��를 ��는데 ��리는 ����� �� ����가 다는 것���다.

������는 �를 ��나 ��고, ������ ���� �������� ���� ����만�� 다른 �로 ������는 문��를 �����다. 를 들��, 8��������� ���기 2나, 빼기 7 ������� 6��� ����만�� 15를 만드는 문�����다.

�� 그룹�� 를 들�� 복���� 문��를 먼�� �������고, 다른 그룹�� 단�� 문��(��대 2��� 8 9로 바꾸는 것) 두개를 먼�� ����������다.

����� 그룹�� �� 문��를 ��는데 ��균 406 ���� ��렸��만, 두��� 그룹�� 복���� 문��를 ��는데 97�렸고, � 문��를 모두 ��는데 192�� ��리�� �������다.

��를 HanoiProblem�� ������면, 3개(���� 5개, 6개)�� �반 문��가 복����다면, ��나, 둘 ��� �� 더 단�� 문��를 먼�� ��고 ��기� 문�������� "구���� ����" 발견�� 낸 뒤�� �� 더 ��렵��나 �� 더 ��반���� (�� �반 n개) 문���� ���는 것�� ��과����라는 말�� 됩�다.

반대로 문��가 �무 단��� 복���� 경����는 ��려 100개, 200개 ��� 복��/��반���� 경��를 ��각��는 것�� ��� 될 �� ���다.

미로���러내려��기

���� 미로가 �무 복���� 때 목������� ��꾸로 내려��는 것�� 더 ��� 때가 ���다. TestDrivenDevelopment �� 방법 �������다. ������ ��는 것 ������게 �명�� ��고, 그 목������� ���러 내려���다.

HanoiProblem�� 복����게 느껴다면, ��� 목������ ��� ����, ��, 모든 �반�� 다른 막대기로 ��겨가 ����를 �������다. 다����는 ��기��� 바로 ���� ����로 ���러 내려���다.

����, ������ 볼 �� ���다. ����되� 모든 �반�� ��겨가려면 ��느 ����가는 가�� �� �반�� ���는 막대기로 ��동�� 가�� ���다. �� ������� 가�� �� �반�� 는 막대기��는 �� �반 ��나만 ��고, 그 �반�� ��겨� 막대기는 ������� ��므로, 결국 두개�� 막대기가 모두 ����되고, 나머�� ��나�� 막대기��는 나머�� �반들�� 모두 ��기 ��로 ����게 될 것��라는 ���� �� ���다. ��기�� 뒤 ���� ��각�� 보면 ��떤 ���� �� ���다.

--JuNe



Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:21
Processing time 0.0199 sec