n < 3 이면 f(n) = n
n >= 3 이면 f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3)
되도는 프로세스(recursive process)
반복 프로세스
되도는 프로세스는 쉽게 풀었는데 반복 프로세스에서 좀 많이 고민했다. 책 본문에 피보나치 수열을 반복 프로세스로 만든 코드를 보고 비슷하게 대입하고 f-rec와 f-iter에 n값을 똑같이 주고 몇 번 테스트해봤는데 결과가 비슷하다.
a <- a + 2b + 3c
b <- a
c <- b
규칙을 저렇게 만들었는데, a를 왜 저렇게 만들었는지 나도 모르겠다;;; 공책에 풀어쓰면서 찍었던건데 어쩌다가 딱 맞아 떨어졌는지.. a의 규칙을 왜 저렇게 만들었는지 이해를 해야할 텐데 주관식 문제에서도 찍기 실력이 나오면 곤란하다.
n >= 3 이면 f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3)
되도는 프로세스(recursive process)
(define (f-rec n)
(cond ((< n 3) n)
((>= n 3)
(+ (f-rec (- n 1))
(* 2 (f-rec (- n 2)))
(* 3 (f-rec (- n 3)))))))
반복 프로세스
(define (f-iter a b c count)
(if (= count 0)
c
(f-iter (+ a (* 2 b) (* 3 c)) a b (- count 1))))
(f-iter 2 1 0 n)
되도는 프로세스는 쉽게 풀었는데 반복 프로세스에서 좀 많이 고민했다. 책 본문에 피보나치 수열을 반복 프로세스로 만든 코드를 보고 비슷하게 대입하고 f-rec와 f-iter에 n값을 똑같이 주고 몇 번 테스트해봤는데 결과가 비슷하다.
a <- a + 2b + 3c
b <- a
c <- b
규칙을 저렇게 만들었는데, a를 왜 저렇게 만들었는지 나도 모르겠다;;; 공책에 풀어쓰면서 찍었던건데 어쩌다가 딱 맞아 떨어졌는지.. a의 규칙을 왜 저렇게 만들었는지 이해를 해야할 텐데 주관식 문제에서도 찍기 실력이 나오면 곤란하다.


덧글