게시판 인덱스

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

과제2 테스트셋 작년버전입니다.

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



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

올리기올려짐: 2010년9월29일 23:16    주제: 과제2 테스트셋 작년버전입니다. 인용과 함께 답변

역시 작년 게시판에서 퍼왔습니다만.. 4번문제 셋은 되는 것인지 잘 모르겠고, 5번은 없습니다;;ㅎㅎ 역시 작년 그 선배님께 감사합시다 ㅎㅎ
------------------------------------------------------------

문제가 묘하게 다단계라서 테스트셋 만들기가 쉽지 않네요.

내부 구현이 드러나지 않는 테스트셋.

미로검증의 경우는 내부 구현 공개 없이 테스트는 아예 불가능한 것 같군요. 어둠의 경로(...)를 이용하시거나 가능하면 직접 구현해보세요. 자료구조에서 graph 배우셨을테니 잘 응용하면 그리 어렵진 않을겁니다.




트리 테스트 셋입니다. 트리 잘못짜면 다음 세문제 돌리다 에러났을때 트리가 틀린건지 다음문제가 틀린건지 모르는 사태가 발생합니다.

(define mytree (node (list (leaf (list 'node 'leaf ())) (node (list (leaf 'node) (leaf (list 1 2 3)) (leaf ()))) (node (list (leaf ()) (leaf (list 'leaf ())) (leaf (list ())))))))
> (is-empty-tree? mytree)
#f
> (is-leaf? mytree)
#f
>(is-leaf? (nth-child mytree 0))
#t
> (leaf-val (nth-child mytree 0))
(node leaf ())
> (is-leaf? (nth-child mytree 1))
#f
> (is-leaf? (nth-child (nth-child mytree 1) 1))
#t
> (leaf-val (nth-child (nth-child mytree 1) 1))
(1 2 3)
> (leaf-val (nth-child (nth-child mytree 1) 0))
node
> (leaf-val (nth-child (nth-child mytree 1) 2))
()
> (is-empty-tree? (nth-child (nth-child mytree 1) 2))
#f
> (leaf-val (nth-child (nth-child mytree 2) 0))
()
> (leaf-val (nth-child (nth-child mytree 2) 1))
(leaf ())
> (leaf-val (nth-child (nth-child mytree 2) 2))
(())
> (is-empty-tree? (leaf ()))
#f
> (is-empty-tree? (node ()))
#t
> (is-empty-tree? (node (list (leaf ()) (node ()))))
#f
> (is-empty-tree? (nth-child (node (list (leaf ()) (node ()))) 1))
#t



모빌 테스트셋입니다. 역시 모빌이 '제대로 만들어지지' 않는다면 balanced나 weight도 제대로 작동 안할테니 만드는 함수는 따로 테스트 안합니다. (덧붙여, 만드는 함수만 수행시키면 실행 결과가 구현에 종속적이라 올릴수가 없습니다)

> (weight (make-mobile (make-branch 12 (make-mobile (make-branch 3 (make-mobile (make-branch 2 (model 2)) (make-branch 2 (make-mobile (make-branch 3 (model 1)) (make-branch 3 (model 1)))))) (make-branch 6 (model 2)))) (make-branch 18 (make-mobile (make-branch 3 (model 1)) (make-branch 1 (model 3))))))
10
> (is-balanced? (make-mobile (make-branch 12 (make-mobile (make-branch 3 (make-mobile (make-branch 2 (model 2)) (make-branch 2 (make-mobile (make-branch 3 (model 1)) (make-branch 3 (model 1)))))) (make-branch 6 (model 2)))) (make-branch 18 (make-mobile (make-branch 3 (model 1)) (make-branch 1 (model 3))))))
#t
> (is-balanced? (make-mobile (make-branch 12 (make-mobile (make-branch 3 (make-mobile (make-branch 3 (model 2)) (make-branch 2 (make-mobile (make-branch 3 (model 1)) (make-branch 3 (model 1)))))) (make-branch 6 (model 2)))) (make-branch 18 (make-mobile (make-branch 3 (model 1)) (make-branch 1 (model 3))))))
#f
> (is-balanced? (make-mobile (make-branch 12 (make-mobile (make-branch 3 (make-mobile (make-branch 2 (model 2)) (make-branch 2 (make-mobile (make-branch 3 (model 1)) (make-branch 3 (model 1)))))) (make-branch 4 (model 3)))) (make-branch 18 (make-mobile (make-branch 3 (model 1)) (make-branch 1 (model 3))))))
#f


마지막으로 논리회로 테스트 셋입니다.
두가지 4-input boolean circuit으로 truth table을 찍게 해버렸으니
이게 제대로 돌아가면 거의 맞았다고 보셔도 될 듯 합니다. 나머지 함수들은 아마도.. output 내부 구현에서 사용하고 있을테니 따로 테스트 안합니다.

> (let ((logic (lambda (a b c d) (output (cor (cor (cand (cand (cnot a) b) (cnot c)) (cand (cand (cnot a) (cnot c)) d)) (cand (cand (cnot a) (cnot b)) (cand c (cnot d))))))))
(list
(logic zero zero zero zero)
(logic zero zero zero one)
(logic zero zero one zero)
(logic zero zero one one)
(logic zero one zero zero)
(logic zero one zero one)
(logic zero one one zero)
(logic zero one one one)
(logic one zero zero zero)
(logic one zero zero one)
(logic one zero one zero)
(logic one zero one one)
(logic one one zero zero)
(logic one one zero one)
(logic one one one zero)
(logic one one one one)))
(0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0)

> (let ((logic (lambda (a b c d) (output (cor (cor (cand b (cnot c)) (cand (cnot a) b)) (cand (cand a (cnot b)) (cand c d)))))))
(list
(logic zero zero zero zero)
(logic zero zero zero one)
(logic zero zero one zero)
(logic zero zero one one)
(logic zero one zero zero)
(logic zero one zero one)
(logic zero one one zero)
(logic zero one one one)
(logic one zero zero zero)
(logic one zero zero one)
(logic one zero one zero)
(logic one zero one one)
(logic one one zero zero)
(logic one one zero one)
(logic one one one zero)
(logic one one one one)))
(0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0)

-----------------------------------------------

아마 5번 문제 셋은 cnot,cand 등이 올해 문제의 not-circuit,and-circuit 등을 의미 하는 것 같네요;;ㅋㅋ
위로
사용자 정보 보기 비밀 메시지 보내기
정민종



가입: 2010년 9월 20일
올린 글: 8

올리기올려짐: 2010년9월30일 17:55    주제: 인용과 함께 답변

덕분에 많은 도움이 되었습니다. 감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 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