게시판 인덱스

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

문제 1~6번까지 제가 사용한 테스트 셋과 그 결과

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2005)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
최성록
손님





올리기올려짐: 2005년9월29일 6:02    주제: 문제 1~6번까지 제가 사용한 테스트 셋과 그 결과 인용과 함께 답변

필요하신 분은 사용하시고, 결과도 비교해보세요^^

즐거운 프로그래밍^^

문제 1)
테스트 코드:
코드:

val a = [1, 4, 5, 9, 15]
val b = [2, 3, 6, 7]
val c = merge(a, b)

결과:
코드:

val a: int list = [1, 4, 5, 9, 15]
val b: int list = [2, 3, 6, 7]
val c: int list = [1, 2, 3, 4, 5, 6, 7, 9, 15]


문제 2)
테스트 코드:
코드:

val exp1 = SUM[ VAR "x", VAR "a", CONST 7 ] // x + a + 7
val ans1 = diff(exp1, "x")                  // 1

val exp2 = POWER("x", 2)                    // x^2
val ans2 = diff(exp2, "x")                  // 2x

val exp3 = TIMES[ VAR "b", VAR "x" ]        // bx
val ans3 = diff(exp3, "x")                  // b

val exp4 = SUM[ TIMES[ VAR "a", POWER("x", 2) ],
                TIMES[ VAR "b", VAR "x" ],
                VAR "c"
              ]                             // ax^2 + bx + c
val ans4 = diff(exp4, "x")                  // 2ax + b

결과:
코드:

val exp1: ae = SUM [VAR "x", VAR "a", CONST 7]
val exp2: ae = POWER ("x", 2)
val ans1: ae = SUM [CONST 1, SUM [CONST 0, SUM [CONST 0, CONST 0]]]
val exp3: ae = TIMES [VAR "b", VAR "x"]
val ans2: ae = TIMES [CONST 2, POWER ("x", 1)]
val exp4: ae
        = SUM
           [TIMES [VAR "a", POWER ("x", 2)], TIMES [VAR "b", VAR "x"],
            VAR "c"]
val ans3: ae
        = SUM
           [TIMES [CONST 0, VAR "x"],
            TIMES [VAR "b", SUM [TIMES [CONST 1], TIMES [VAR "x", CONST 0]]]]
val ans4: ae
        = SUM
           [SUM
             [TIMES [CONST 0, POWER ("x", 2)],
              TIMES
               [VAR "a",
                SUM
                 [TIMES [TIMES [CONST 2, POWER ("x", 1)]],
                  TIMES [POWER ("x", 2), CONST 0]]]],
            SUM
             [SUM
               [TIMES [CONST 0, VAR "x"],
                TIMES
                 [VAR "b", SUM [TIMES [CONST 1], TIMES [VAR "x", CONST 0]]]],
              SUM [CONST 0, CONST 0]]]


문제 3)
테스트 코드:
코드:

val myHeap = insert(3, insert(1, insert(2, insert(7, insert(6, insert(4, insert(5, EMPTY)))))))
val _ = print_int( rank(myHeap) )
val _ = print_int( findMin(myHeap) )

val myHeap2 = deleteMin(myHeap)
val _ = print_int( rank(myHeap2) )
val _ = print_int( findMin(myHeap2) )

결과:
코드:

1112  <- 위에서 _로 표시한 것이 차례대로 출력된 것입니다.
val myHeap: heap
          = NODE
             (1, 1,
              NODE
               (0, 2,
                NODE
                 (1, 4, NODE (0, 5, NODE (0, 6, EMPTY, EMPTY), EMPTY),
                  NODE (0, 7, EMPTY, EMPTY)),
                EMPTY),
              NODE (0, 3, EMPTY, EMPTY))
val myHeap2: heap
           = NODE
              (1, 2,
               NODE
                (1, 4, NODE (0, 5, NODE (0, 6, EMPTY, EMPTY), EMPTY),
                 NODE (0, 7, EMPTY, EMPTY)),
               NODE (0, 3, EMPTY, EMPTY))


문제 4)
테스트 코드:
코드:

val testLoc = LOC( LEAF "*",
                   HAND( [LEAF "c"],
                         HAND( [LEAF "+", NODE[LEAF "a", LEAF "*", LEAF "b"]], TOP, [] ),
                         [LEAF "d"]
                       ))

val loc1 = goLeft(testLoc)
val loc2 = goRight(loc1)
val loc3 = goUp(loc2)
val loc4 = goDown(loc3)
val loc5 = goRight(loc4)
//val loc6 = goDown(loc5)
val loc6 = goUp(loc3)
//val loc7 = goUp(loc6)
//val loc7 = goLeft(loc6)

결과:
코드:

val loc1: location
        = LOC
           (LEAF "c",
            HAND
             ([],
              HAND ([LEAF "+", NODE [LEAF "a", LEAF "*", LEAF "b"]], TOP, []),
              [LEAF "*", LEAF "d"]))
val loc2: location
        = LOC
           (LEAF "*",
            HAND
             ([LEAF "c"],
              HAND ([LEAF "+", NODE [LEAF "a", LEAF "*", LEAF "b"]], TOP, []),
              [LEAF "d"]))
val loc3: location
        = LOC
           (NODE [LEAF "c", LEAF "*", LEAF "d"],
            HAND ([LEAF "+", NODE [LEAF "a", LEAF "*", LEAF "b"]], TOP, []))
val goUp: location -> location = <fun>
val loc4: location
        = LOC
           (LEAF "c",
            HAND
             ([],
              HAND ([LEAF "+", NODE [LEAF "a", LEAF "*", LEAF "b"]], TOP, []),
              [LEAF "*", LEAF "d"]))
val loc5: location
        = LOC
           (LEAF "*",
            HAND
             ([LEAF "c"],
              HAND ([LEAF "+", NODE [LEAF "a", LEAF "*", LEAF "b"]], TOP, []),
              [LEAF "d"]))
val loc6: location
        = LOC
           (NODE
             [LEAF "+", NODE [LEAF "a", LEAF "*", LEAF "b"],
              NODE [LEAF "c", LEAF "*", LEAF "d"]],
            TOP)
val testLoc: location
           = LOC
              (LEAF "*",
               HAND
                ([LEAF "c"],
                 HAND
                  ([LEAF "+", NODE [LEAF "a", LEAF "*", LEAF "b"]], TOP, []),
                 [LEAF "d"]))


문제 5)
테스트 코드:
코드:

val xor_a   = TRUE
val xor_b   = FALSE
val xor_ans = 뭔고하니 ORELSE( ANDALSO(xor_a, NOT xor_b), ANDALSO(NOT xor_a, xor_b) ) // true
val ex_ans = 뭔고하니 LESS( NUM 3, PLUS(NUM 5, NUM 1) ) // 3 < 6, true

결과:
코드:

val xor_ans: bool = true
val xor_a: formula = TRUE
val xor_b: formula = FALSE
val ex_ans: bool = true


문제 6)
테스트 코드:
코드:

val q1 = _정수리스트_큐.빈큐
val q2 = _정수리스트_큐.넣기(_정수리스트_큐.넣기(_정수리스트_큐.넣기(q1, [1]), [2, 3]), [4, 5, 6])
val (e1, q3) = _정수리스트_큐.빼기 q2
val q4 = _정수리스트_큐.합하기(q2, q3)

결과:
코드:

val q1: _정수리스트_큐.큐 = _정수리스트_큐.QUEUE ([], [])
val q2: _정수리스트_큐.큐
      = _정수리스트_큐.QUEUE ([[4, 5, 6], [2, 3], [1]], [])
val q3: _정수리스트_큐.큐 = _정수리스트_큐.QUEUE ([], [[2, 3], [4, 5, 6]])
val q4: _정수리스트_큐.큐
      = _정수리스트_큐.QUEUE
         ([[4, 5, 6], [2, 3], [4, 5, 6], [2, 3], [1]], [])
val e1: int list = [1]
위로
최성록
손님





올리기올려짐: 2005년9월29일 6:33    주제: 수정할 것이 있군요. 인용과 함께 답변

문제 4의 결과를 수정)
코드:

val loc6: location
        = LOC
           (NODE
             [NODE [LEAF "a", LEAF "*", LEAF "b"], LEAF "+",
              NODE [LEAF "c", LEAF "*", LEAF "d"]],
            TOP)
위로
유상우
손님





올리기올려짐: 2005년9월29일 10:26    주제: .. 인용과 함께 답변

코드:
type ae =
     CONST of int
   | VAR of string | POWER of string * int | TIMES of ae list
   | SUM of ae list
val exp1: ae = SUM [VAR "x", VAR "a", CONST 7]
val exp2: ae = POWER ("x", 2)
val ans1: ae = CONST 1
val exp3: ae = TIMES [VAR "b", VAR "x"]
val ans2: ae = TIMES [CONST 2, VAR "x"]
val exp4: ae
        = SUM
           [TIMES [VAR "a", POWER ("x", 2)], TIMES [VAR "b", VAR "x"],
            VAR "c"]
val ans3: ae = VAR "b"
val ans4: ae = SUM [TIMES [VAR "a", TIMES [CONST 2, VAR "x"]], VAR "b"]
val diff: ae * string -> ae = <fun>


성록이형.. 밤새워서 저는 해냈습니다! Twisted Evil

왜 했지..

...
위로
이승윤
손님





올리기올려짐: 2005년9월29일 17:44    주제: 인용과 함께 답변

val q4: int list list * int list list
= ([[4, 5, 6], [2, 3], [1]], [[2, 3], [4, 5, 6]])

가 되어야 하지 않을까요? ^^


@테스트 케이스 잘 사용하였습니다~
위로
윤휴빈
손님





올리기올려짐: 2005년9월29일 17:58    주제: 인용과 함께 답변

이승윤 씀:
val q4: int list list * int list list
= ([[4, 5, 6], [2, 3], [1]], [[2, 3], [4, 5, 6]])

가 되어야 하지 않을까요? ^^


@테스트 케이스 잘 사용하였습니다~


뒤에 붙는다는 게 정확히 어떤 의미인지가 문제네요..

그냥 큐 뒤에 큐가 붙는다고 생각할 수도 있고

원소의 순서가 뒤라고 생각할 수도 있고 말이죠.

저는 뒤에 붙는다는 걸 순서대로 뽑을 떄 원소가 나중에 나오는 거라고

생각했는데 이렇게 보니 또 헷갈리네요.
위로
김진현



가입: 2005년 9월 20일
올린 글: 91
위치: SNUCSE OPT. lab.

올리기올려짐: 2005년9월29일 18:44    주제: 큐 합쳐보기 인용과 함께 답변

코드:
val q1 = _정수리스트_큐.넣기(_정수리스트_큐.빈큐, [1]);;
val q2 = _정수리스트_큐.넣기(_정수리스트_큐.빈큐, [2]);;
val q3 = _정수리스트_큐.넣기(_정수리스트_큐.빈큐, [3]);;
val q4 = _정수리스트_큐.넣기(_정수리스트_큐.빈큐, [4]);;
val q12 = _정수리스트_큐.합하기(q1, q2);;
val q34 = _정수리스트_큐.합하기(q3, q4);;
val q = _정수리스트_큐.합하기(q12, q34);;
val (t1, t2) = _정수리스트_큐.빼기(q);;
val (t1, t2) = _정수리스트_큐.빼기(t2);;
val (t1, t2) = _정수리스트_큐.빼기(t2);;
val (t1, t2) = _정수리스트_큐.빼기(t2);;
val (t1, t2) = _정수리스트_큐.빼기(t2);;


차례로 [1], [2], [3], [4] 가 나온 후 빈큐라고요.
_________________
The kingdom of heaven has been forcefully advancing, and forceful men lay hold of it.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문 MSN 메신저
서상원



가입: 2005년 9월 27일
올린 글: 33

올리기올려짐: 2005년9월29일 19:01    주제: 인용과 함께 답변

윤휴빈 씀:
이승윤 씀:
val q4: int list list * int list list
= ([[4, 5, 6], [2, 3], [1]], [[2, 3], [4, 5, 6]])

가 되어야 하지 않을까요? ^^


@테스트 케이스 잘 사용하였습니다~


뒤에 붙는다는 게 정확히 어떤 의미인지가 문제네요..

그냥 큐 뒤에 큐가 붙는다고 생각할 수도 있고

원소의 순서가 뒤라고 생각할 수도 있고 말이죠.

저는 뒤에 붙는다는 걸 순서대로 뽑을 떄 원소가 나중에 나오는 거라고

생각했는데 이렇게 보니 또 헷갈리네요.

저도 원소가 나중에 나오는 거라고 해석했습니다만..
숙제 문서에 b_{n}이 머리라고 적혀있으니 그 쪽을 앞이라고 봐야하지 않을까요.
위로
사용자 정보 보기 비밀 메시지 보내기
김덕환



가입: 2005년 8월 29일
올린 글: 190

올리기올려짐: 2005년9월29일 20:31    주제: _큐_.합치기 인용과 함께 답변

See https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=59
_________________
TheyAreAsSmartAsYouAre
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2005) 시간대: GMT + 9 시간(한국)
페이지 11

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


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