저는 번역서를 갖고 있는데 어떻게 정렬하라는 거야라고 약간 의문이긴 했습니다만 추측대로군요.
하지만 3번에서 책에는 "회전문장을 원래대로 되돌리고 순환색인을 작성합니다." 라고 나옵니다.
뭔가 이상하다 했죠...
번역이 이상한 거였군요.
그건 그렇지만 skyoon 씨의 글도 좀...
제 머리가 많이 딸립니다...
연습문제 source 가 없다는 말씀은 원래 acceleratedcpp.com 에도 없었다는 말씀인가요?
Accelerated C++ 와 Essential C++ 를 복습하고 있습니다.
그런데 왠지 번역서의 정오표를 만드는 느낌이라는... 특히 Essential...
다시 읽고 직접 coding 해보니 읽기만 할 때와 느낌이 다르더군요.
개인적으로 Andrew Koenig 의 책과 예제 source 를 대단히 좋아하는데 직접 coding 해보니
왜이리 overloading 을 많이 하는지(학생성적을 만드는 grade 가 완전 쥐약) coding 하는 제 자신이 헷갈리더군요.
Stanly Lippman 의 책은 많은 분들이 좋아하지만 Essential 의 source 가 조금 옛날 style 같아서 저는 별로였는데
다시 읽어보니(coding 은 안 하고 있습니다.) 익숙해져서 그런지 또 느낌이 괜찮더군요.
(그렇다 하더라도 전체적인 제 생각은 역시 많은 점수는 못 주겠는 것은 또 어쩔 수 없더군요.)
제가 가장 이해 못했던 것은 문장순서가 왜 그렇게 나오는 것인가 했거든요.
위 link 에서 index 의 시작위치만 다른 색으로 표시하니 미묘한 느낌과 함께 이해가 가기 시작하더라구요...
(저는 머리가 돌이라 눈으로 명확히 구분이 안되면 이해가 안 가나 봅니다.)
2단 출력의 오른편이 색인이었던 거군요.
부분 match 를 통해서 검색을 하기 위한 것으로 이해했습니다.
말씀하신 원리, 즉 관련된 단어들을 다시 색인하여 같이 표현한다는 말씀은 아직 이해못했지만
(man page 가 permuted index 를 사용한다고 하니 그런 원리를 쓰고 있는거겠죠?)
일단 알고 싶은 것은 다 이해한 것 같고 앞으로 공부하다보면 말씀하신 것도 알 날이 오겠죠...
적어주신 자세한 내용은 제가 coding 할 때 많은 도움이 되리라 봅니다.
단어들의 container 를 만든 후 반복자를 이용해서 index 시작위치를 표현하는
container 를 만든 후 algorithm 을 전개할 것을 생각했습니다.
예...연습문제
소스는 없습니다.
그런데...
원서인지 번역서인지는 모르겠지만..
1.2.3 번의 설명이 잘되어있는데...ㅡㅡ;;
1번은 이해가 가시죠?
2.그문장들을 정렬하죠. (descending이나 ascending 상관없습니다.)
The quick brown fox
quick brown fox The
brown fox The quick
fox The quick brown
정렬후...
brown fox The quick
fox The quick brown
quick brown fox The
The quick brown fox
이렇게 되죠?
자 그러면 3번을 보죠
brown fox The quick 하나만 예를들죠..
3번에 따르면
brown fox The quick
이문장을 시작하는 위치는 The입니다. 맞죠?
이 때 순환색인을 작성하시고. 문장을 되돌리고, 라는 말이나오는데
순환색인은 결국...The라는 단어를 가지고 색인을 찾으면 연관된 quick까지 같이 뿌려주는 것을 말합니다. 즉 시작 색인 단어는 The 입니다.
이를 순환색인으로 만들면 결국 The라는 색인을 검색했을 때 The Quick을 가지고 오게되죠. 같은 이치로 끝 색인 단어는 fox죠..
결국 brown fox를 가지고 오는거죠. 설명이 좀 허접합니다. 글로 설명하기가 좀 그렇네요..쩝;;;;
자.... 원래 문장으로 만들려면 The부터 시작한 문장 The quick를 잘라야하죠? 그리고 끝나는것은 brown fox죠?
이 때가 "순환색인 작성, 문장 되돌리기"를 모두 한것입니다.
그리고 하고나서 만들어진 색인을 출력하면 결국 The quick과 browon fox 이렇게 두개로 나뉘어 출력되는거죠.
나머지도 역시나 같은원리로...2년전에 공부한거라 양해를~ ㅡㅡ;;
----------------------------------------------------------------------
인생 뭐있어? 백수로 사는거야~ 가는거야~
----------------------------------------------------------------------
인생 뭐있어? 백수로 사는거야~ 가는거야~
3번이 완전히 이해를 하지는 못하겠네요.
우선 2번 정렬까지는 이해했습니다.
저는 번역서를 갖고 있는데 어떻게 정렬하라는 거야라고 약간 의문이긴 했습니다만 추측대로군요.
하지만 3번에서 책에는 "회전문장을 원래대로 되돌리고 순환색인을 작성합니다." 라고 나옵니다.
뭔가 이상하다 했죠...
번역이 이상한 거였군요.
그건 그렇지만 skyoon 씨의 글도 좀...
제 머리가 많이 딸립니다...
연습문제 source 가 없다는 말씀은 원래 acceleratedcpp.com 에도 없었다는 말씀인가요?
Accelerated C++ 와 Essential C++ 를 복습하고 있습니다.
그런데 왠지 번역서의 정오표를 만드는 느낌이라는... 특히 Essential...
다시 읽고 직접 coding 해보니 읽기만 할 때와 느낌이 다르더군요.
개인적으로 Andrew Koenig 의 책과 예제 source 를 대단히 좋아하는데 직접 coding 해보니
왜이리 overloading 을 많이 하는지(학생성적을 만드는 grade 가 완전 쥐약) coding 하는 제 자신이 헷갈리더군요.
Stanly Lippman 의 책은 많은 분들이 좋아하지만 Essential 의 source 가 조금 옛날 style 같아서 저는 별로였는데
다시 읽어보니(coding 은 안 하고 있습니다.) 익숙해져서 그런지 또 느낌이 괜찮더군요.
(그렇다 하더라도 전체적인 제 생각은 역시 많은 점수는 못 주겠는 것은 또 어쩔 수 없더군요.)
제게 주관이라는 것이 없는 것인지...
^^;;
주어진 문장은 The quick brown fox 이 문장이죠?
이문장의 시작 색인 단어는 The이고 끝 색인 단어는 fox입니다.
그러면 brown fox The quick 를 가지고 다시 이야기하죠.
여기서 brown이 시작단어고 quick가 끝단어입니다.
그러면 "회전문장을 원래대로 되돌리고 순환색인을 작성합니다"를 하나씩 해보죠.
이문장에서 원래 시작색인과 끝색인의 위치를 찾습니다.
그러면 정상적인 문장으로 돌리기위해서는 어디부터 어디까지 잘라야하는지 알 수 있죠?
brown은 문장의 시작단어이고 fox는 끝색인이며 The는 시작색인이고 quick은 문장의 끝단어입니다.
그러면 시작색인과 문장의 끝단어가 연결된 것이 같이 잘라지면 The quick과 brown fox가 되죠? 뭐 반대로 잘라도 상관은 없겠죠.
같은 원리로....
fox The quick brown를 해보면
fox는 끝색인이고 The는 시작색인이며 quick brown은 문장의 끝단어들(문장의 일부)입니다.
그러면 시작색인과 문장의끝단어들을 같이 자르면 The quick brown과 fox가 되죠?
순환색인을 작성한다는 것은 색인과 관련있는? 연결된? 단어들을 같이 하나의 색인으로 만드는 것으로 보셔도 됩니다.
원래 원리는 The라는 인덱스를 가지고 관련된 단어들을 다시 색인하여 같이 표현하는 것입니다만...
이렇게 순환색인을 작성하면 The라는 인덱스는 결국 brown fox The quick에서 보면 The quick를 나타내게 되는거죠.
그러면 이것들을 원래 문장 순서 대로 만들어 두개의 색인(시작색인 The와 끝색인 fox)을 출력하면 결국 아래와 같이 됩니다.
The quick brown fox
The quick brown fox
The quick brown fox
The quick brown fox
이렇게 관련단어와 같이 통채로 출력이 되는것이죠.
----------------------------------------------------------------------
인생 뭐있어? 백수로 사는거야~ 가는거야~
----------------------------------------------------------------------
인생 뭐있어? 백수로 사는거야~ 가는거야~
감사 이해에 도움이 많이 되었습니다.
사실 제가 이해를 못했던 것은 permuted index 자체에 대한 것이었습니다.
문제를 이해못하니 해결을 위한 algorithm 역시 알 수가 없었던 거죠.
Permuted index 에 대해서 이리저리 찾다가
http://www.codeproject.com/libray/PermutedIndex.asp
를 보고 나서 이해했습니다.
제가 가장 이해 못했던 것은 문장순서가 왜 그렇게 나오는 것인가 했거든요.
위 link 에서 index 의 시작위치만 다른 색으로 표시하니 미묘한 느낌과 함께 이해가 가기 시작하더라구요...
(저는 머리가 돌이라 눈으로 명확히 구분이 안되면 이해가 안 가나 봅니다.)
2단 출력의 오른편이 색인이었던 거군요.
부분 match 를 통해서 검색을 하기 위한 것으로 이해했습니다.
말씀하신 원리, 즉 관련된 단어들을 다시 색인하여 같이 표현한다는 말씀은 아직 이해못했지만
(man page 가 permuted index 를 사용한다고 하니 그런 원리를 쓰고 있는거겠죠?)
일단 알고 싶은 것은 다 이해한 것 같고 앞으로 공부하다보면 말씀하신 것도 알 날이 오겠죠...
적어주신 자세한 내용은 제가 coding 할 때 많은 도움이 되리라 봅니다.
단어들의 container 를 만든 후 반복자를 이용해서 index 시작위치를 표현하는
container 를 만든 후 algorithm 을 전개할 것을 생각했습니다.
돌머리인 저를 가르쳐주시기 위해 두번의 자세한 답글, 감사드립니다.
댓글 달기