게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

숙제 문제 1 관련 count질문

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Spring 2007)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
정동호



가입: 2007년 3월 28일
올린 글: 19

올리기올려짐: 2007년3월29일 19:39    주제: 숙제 문제 1 관련 count질문 인용과 함께 답변

여전히 1번에서 방황중입니다. -_-

제 수준에서는, recursive call이 일어날 때마다 전역변수(!)를 하나씩 더하고 나중에 원래 계층(최초 call이 일어난 곳)으로 돌아와서 전역변수에 몇개나 더해졌나~하는 걸로 "Values:"를 뽑는 방법밖에 생각이 안 나는데 스킴에선 아무리 해도 이게 잘 안 되는군요. 말 그대로 think very hard해야하는 건가요 Crying or Very sad . 수업자료처럼 내부에서 함수를 하나 더 만들어서 그걸로 recursion을 해보기도 했는데 역시 같은 문제를 만났습니다.

나머지 문제는 손도 못대고 있는 불쌍한 중생에게 가벼운 힌트 하나만이라도 부탁드립니다.
위로
사용자 정보 보기 비밀 메시지 보내기
장민석



가입: 2006년 9월 5일
올린 글: 165

올리기올려짐: 2007년3월29일 20:22    주제: 인용과 함께 답변

문제 풀이 방법이나 그에 관련된 힌트를 게시판에 올리는 것은 부적절하다고 생각합니다. 도전적인 문제를 즐기고 싶어하는, 그러나 아직 문제를 풀지는 않은 사람들에게 스포일러가 되지 않을까요?

파인만 문제해결법보다 조금 더 도움이 되는 푸앵가레 문제해결법을 써 보시는 것도 좋을 것 같습니다. 푸앵가레 알고리즘은 다음과 같습니다.

1. 어렵고 복잡한 문제가 있을 경우 그 내용 전부를 종이에 쏟아 붓는다.
2. 그 중에 자신이 답할 수 있는 것에는 모조리 답을 단다.
3. 나머지 중 "가장 쉬운 것"을 한 놈 고른다.
4. 산책을 하는 동안 머리 속에서 그 문제만 생각한다.
5. 만약 중간에 해결 방안이 생각나면 돌아와서 종이에 적는다.
6. 3으로 돌아간다.
위로
사용자 정보 보기 비밀 메시지 보내기
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2007년3월29일 22:32    주제: 인용과 함께 답변

0.

숙제하는 것이 어려운 것은 저도 많이 경험해 보아서 깊이 공감이 되네요.

하지만, 스스로 문제를 해결하는 즐거움을 제가 감히 빼앗아서는 안된다고 생각합니다.

"Think very hard." 하시면 좋은 결과가 있을 것으로 생각합니다.


혹시나 이렇게 하시지는 않겠지만, 숙제 하실 때에

이렇게 짜보고, 돌려보고, 이게 돌까 안돌까? 생각하기 귀찮네. 그냥 한번 돌려보고

돌면 "어머 좋구나!", 안돌면 "아 또 왜 안돌까?" 하고 디버깅하는 식으로 숙제를 하시면

문제해결에 도달하기 어렵습니다.

이런 것을 "Shotgun Approach"라고 하더군요.


가능한 문제를 푸실 때에는 컴퓨터로부터 멀어지시고

오직 종이와 펜에 의존하시고, 문제를 꼼꼼히 이해하신 이후에

모든 것이 머리 속에서 깔끔하게 정리되었다고 생각되셨을 때에

비로소 코딩을 시작하시는 것이 바람직하고 권장할만 합니다.


1.

인용:
제 수준에서는, recursive call이 일어날 때마다 전역변수(!)를 하나씩 더하고 나중에 원래 계층(최초 call이 일어난 곳)으로 돌아와서 전역변수에 몇개나 더해졌나~하는 걸로 "Values:"를 뽑는 방법밖에 생각이 안 나는데 스킴에선 아무리 해도 이게 잘 안 되는군요.


전역변수(!)를 하나씩 더한다는 것이 어떤 의미인지 저는 잘 이해하지 못하겠네요.

recursion에서는 global variable(!)을 이용하지 않습니다.

recursion에서 이용하는 것은 "문제가 재귀적으로 해결된다는 믿음" 입니다.


수업 PPT와 교과서(SICP)에 있는 recursion에 대한 부분을 잘 읽어보시고,

음미하시고, 꼭꼭 씹어서, 잘 소화하신 이후에

다시 1번 문제와 만나서 잘 이야기해보시면

해결책을 찾으실 수 있지 않을까 합니다.


Recursion을 이해하는 것이 매우 어렵다고 합니다.

우스개 소리로는
인용:

"In order to understand recursion, one must first understand recursion."


라는 이야기도 하니까요.

정동호씨는 물리학과이시니 "양자역학의 선수과목은 양자역학" 이라는 이야기도 종종 들어보셨겠군요. Smile

하지만, 사실은 그리 어렵지 않습니다. 곧 알게되실겁니다.


2.

공부하시면서 이해하기 어려운 부분에 대해서는

언제라도 조교에게 이야기하고 찾아오시면 도와드릴 수 있습니다.

죄송하지만 숙제에 대한 힌트를 드리는 것은 불가능합니다.


사실 굉장한 힌트가 하나 있기는 있습니다.


하나는 문제의 답이라는게 정말 있다는 것이고, 그 답이 무려 재귀적이라는 것까지 누설되어있습니다.


P.S.> 숙제하시다가 혹여라도 Burnout 하시는 수강생이 계시다면

http://web.mit.edu/afs/athena.mit.edu/user/w/c/wchuang/News/college/MIT-views.html
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
장민석



가입: 2006년 9월 5일
올린 글: 165

올리기올려짐: 2007년3월29일 23:36    주제: 인용과 함께 답변

말씀하신 농담을 음미해보았습니다.

인용:
"In order to understand recursion, one must first understand recursion."



음...이 농담은

인용:
"양자역학의 선수과목은 양자역학이다"


인용:
"There are 10 kinds of people; those who can understand binary system and those who can't."


위 두 농담의 미덕을 모두 갖추고 있네요. 전자의 tautology와 후자의 recursive reference. 정말 재밌군요. recursive joke라...
위로
사용자 정보 보기 비밀 메시지 보내기
정동호



가입: 2007년 3월 28일
올린 글: 19

올리기올려짐: 2007년3월30일 14:57    주제: 인용과 함께 답변

저도 나름대로 종이와 연필로 플로우 차트를 그려보고 했는데 막상 만들면서 "아 이렇게 하면 되겠구나!"해놓고 on-the-fly로 수정을 해버리는 바람에 (결과는 당연히 안 나옴) 뒤죽박죽이..-_-

참고로 제가 제일 좋아하는 recursive 농담은

성공하는 방법에는 두 가지가 있다.
1. 남에게 모든 것을 가르쳐줘서는 안 된다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Spring 2007) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay