게시판 인덱스

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

(찾기 어려운) 미로의 조건

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



가입: 2009년 12월 9일
올린 글: 337

올리기올려짐: 2010년10월5일 23:59    주제: (찾기 어려운) 미로의 조건 인용과 함께 답변

1. 다음의 조건을 만족하는 미로를 받으셔야 점수를 받으실 수 있습니다.

문제에 명시되어 있는 미로의 정의:
(a) 입구와 출구가 맨 윗줄의 방과 맨 아랫줄의 방에 각각 하나이고
(b) 입구에서 출구까지의 통로가 유일해야 합니다.
특히 유일하다는 조건에 주의해서 만들어 주세요.

이 조건은 반드시 지켜 주셔야 하는 조건입니다. 이 조건만 만족하더라도 상당한 기본 점수를 받으실 수 있습니다.



2. 미로의 목표는 문제에도 나와 있지만, 될 수 있으면 어렵게 만들자는 것입니다. 이는 다소 주관적일 수도 있으나, 문제에 명시되어 있는 만큼 어느 정도 차등을 두어 채점하려고 합니다.

아래의 조건을 만족할수록 복잡한 미로로 봅니다. 혹시 다르게 생각하신다면 이 글에 답글로 달아 주시면 고려해 보겠습니다.

(a) 입구에서 도달가능한 방이 많을수록 복잡한 미로로 봅니다. 미로에 입구에서 도달이 불가능한 방이 있다면 의미가 없겠죠. 가장 좋은 경우는 n*m개의 방이 모두 입구에서 도달 가능한 경우입니다.

(b) 임의성이 있을수록 복잡한 미로로 봅니다. 문제네 명시된 것처럼 적당히 혼동스러운 모습을 띄려면 random함수를 이용해 임의적인 미로를 만드시는 것이 좋습니다. 만일 여러분이 만드신 함수를 이용해 만든 두 미로 (mazeGen 10 10)과 (mazeGen 20 20)가 크기만 커졌을 뿐인 유사한 형태의 미로를 돌려준다면, 복잡한 미로 생성기로 보기 곤란합니다.

(c) 어려운 미로를 단순하게 생각해 보면 첫째, 입구에서 출구까지의 거리가 길고, 둘째, 입구에서 출구까지 가는 길까지 갈림길이 많아야 할 것입니다. 하지만 생각해 보시면 알겠지만 이 둘은 서로 trade-off가 있습니다. 하나의 조건을 만족하려 하다 보면 다른 하나의 조건이 무시되게 됩니다. 가장 쉽게 생각해서 입구에서 출구까지의 거리가 가장 긴 미로를 만들면 갈림길이 하나도 없는 미로가 될 것입니다. 이 미로를 복잡한 미로라고 보기는 힘들겠죠. 이 두 조건 사이에 적절한 균형을 맞춰 주실수록 복잡한 미로라고 볼 수 있을 것입니다. (b)를 만족하면 거의 자동적으로 이 조건도 만족할 것입니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
김태훈



가입: 2010년 9월 6일
올린 글: 91

올리기올려짐: 2010년10월6일 0:48    주제: 인용과 함께 답변

미로를 랜덤으로 구현할 때 랜덤이 어떻게 돌아가느냐에 따라(즉 운에 따라) 미로의 목표를 훌륭하게 달성하느냐 허접하게 달성하느냐가 많이 차이날 수도 있는 소스의 경우 점수 채점이 어떻게 되나요?
위로
사용자 정보 보기 비밀 메시지 보내기
김진영_



가입: 2009년 12월 9일
올린 글: 337

올리기올려짐: 2010년10월6일 1:14    주제: 인용과 함께 답변

쉽게 생각할 수 있는 방법으로는 랜덤으로 여러 번 미로를 만들어 보신 뒤 가장 좋은 미로를 돌려주는 방법이 있겠습니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
김현우



가입: 2010년 9월 6일
올린 글: 56

올리기올려짐: 2010년10월6일 22:24    주제: 인용과 함께 답변

여러 번 미로를 만들어서 가장 복잡한 미로를 돌려주는 방식으로 사용해도 운이 나쁠 경우 그 여러 번 만든 미로 모두 충분히 복잡하지 않을 가능성도 있기 때문에

미로생성함수가 적당히 복잡한 미로를 뱉어낼 때까지 반복호출하는 방법을 써야 출력된 미로의 복잡성을 보장받을 수 있을 것 같습니다.

그리고 이 경우에 복잡한 미로의 기준을 높게 잡을수록 mazeGen의 수행시간도 그에 따라 늘어나게 됩니다

수행시간의 대략적인 마지노선을 설정해주시면 기준을 설정하는 데 많은 도움이 될 것 같습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김진영_



가입: 2009년 12월 9일
올린 글: 337

올리기올려짐: 2010년10월6일 22:58    주제: 인용과 함께 답변

크기는 말씀드렸듯 30 by 30을 넘지 않을 것이고, 시간은 한 번 mazeGen 함수를 수행할 때마다 1~2분을 넘어가지 않게 해 주세요.

이 부분에 대해 너무 걱정하지는 마시기 바랍니다. 물론 지나치게 랜덤성에 의존하시면 안 되겠지만.. 실행은 여러 가지 크기에 대해 채점해 보게 될 텐데, 이 중에서 운이 나빠 몇 번 정도 복잡하지 않은 미로가 나왔다고 해도 전체적으로 일정 수준 이상이라면 문제삼지 않겠습니다. Smile
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2010) 시간대: GMT + 9 시간(한국)
페이지 11

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


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