 |
|
이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
최성록 손님
|
올려짐: 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> |
성록이형.. 밤새워서 저는 해냈습니다!
왜 했지..
... |
|
위로 |
|
 |
이승윤 손님
|
올려짐: 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. |
|
위로 |
|
 |
서상원
가입: 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
|
|
위로 |
|
 |
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|