void Permutations(char*a,const int k,const int m)
{//a[k],...,a[m]에 대한 모든 순열을 생성한다.
if(k==m)
{
for(int i=0;i<=m;i++)
{
cout<<a[i]<<" ";
cout<<endl;
}
}
else
{
for(i=k;i<=m;i++)
{
swap(a[k],a[i]);
Permutations(a,k+1,m);
swap(a[k],a[i]);
}
}
}
자료구조하는데 이 코드가 확실히 순환하는건 알겟는데
왜 순열이라는 결과가 나오는지 감이 안잡힘
감은 마당에서
이거 하노인데
결과가 도출될때까지 스택에 쌓이면서 그 데이터만큼 계산하니 당연히 순열. 제대로 구현했다면 올바른 값을 도출하겠지 [from DCHub WP8.0.10211.0]
수학적으로 계산하려면 지정된 n 값만큼 놓고 테스트해보길... 재귀는 우리가 셰산해나가는 값의 역순 [from DCHub WP8.0.10211.0]
이거 하노이아님?