이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
이준희
가입: 2006년 9월 18일 올린 글: 43
|
올려짐: 2006년11월2일 1:12 주제: 4-3번의 테스트 케이스입니다. |
|
|
코드: |
let x := 0
in
let procedure perm(x) =
let result := 0
in
if ( x.n = 0 )
then
result := x.r
else
result := call perm({n := x.n-1, r := x.n * x.r})
end;
result
end
in
read x;
write call perm({n := x, r := 1})
end
end
|
오늘(아니, 어제...OTL) 수업 시간에 등장했던 팩토리알의 TR버전입니다. 의미상으로는 조합쪽이 더 적합하고, 팩토리알은 r=1인 경우에 해당하는 설탕이라고 생각해서 함수 이름은 perm으로 붙였습니다. |
|
위로 |
|
|
이준희
가입: 2006년 9월 18일 올린 글: 43
|
올려짐: 2006년11월2일 1:27 주제: |
|
|
.........위 함수가 조합일줄 알았는데, 아니더군요-_-;; 그래서 TR버전 조합을 새로 짜봤습니다.
코드: |
let x := 0 in
let y := 0 in
let procedure perm(x) =
let result := 0
in
if ( x.fst = 0)
then
result := x.snd.s
else
result := call perm({ fst := x.fst-1, snd := {n := x.snd.n-1, s := x.snd.n * x.snd.s} })
end;
result
end
in
read x;
read y;
write call perm( { fst := y, snd := {n := x, s := 1} })
end
end
end
|
_________________ ... |
|
위로 |
|
|
이준희
가입: 2006년 9월 18일 올린 글: 43
|
올려짐: 2006년11월2일 3:04 주제: |
|
|
조합이 아니라 순열인데 내 정신이....;;; |
|
위로 |
|
|
|