SICP 연습문제 1.10 Posted on January 24, 2008 by pchero 연습문제 1.10 다음 프로세스를 이용하여 f, g, h 프로시저의 기능을 수학으로 정의하는 문제이다. (Language : text) (define (A x y) (cond ((= y 0) 0) ((= x 0) (* 2 y)) ((= y 1) 2) (else (A (- x 1) (A x (- y 1)))))) 프로시저 실행 문제의 답은 위와 같다. 실질적인 문제는 바로 다음인데…..나는 노가다(?)로 풀었다. (Language : text) (define (f n) (A 0 n)) (define (g n) (A 1 n)) (define (h n) (A 2 n)) (f n) 의 경우 (Language : text) (f 1) = 2 (A 0 1) = 4 (f 2) = 4 (A 0 2) = 4 즉 (f n) = 2n (g n)의 경우 (Language : text) (g 1) = 2 (A 1 1) = 2 (g 2) = 4 (A 1 2) (A 0 (A 1 1)) (A 0 2) = 4 (g 3) = 8 (A 1 3) (A 0 (1 2)) (A 0 (A 0 (A 1 1))) (A 0 (A 0 2)) (A 0 4) = 8 즉, (g n) = g^n (h n)의 경우 (Language : text) (h 1) = 2 (A 2 1) = 2 (h 2) = 4 (A 2 2) (A 1 (2 1)) (A 1 2) (A 0 (A 1 1)) (A 0 2) = 4 (h 3) = 16 (A 2 3) (A 1 (A 2 2)) (A 1 (A 1 (A 2 1))) (A 1 (A 1 2)) (A 1 (A 0 (A 1 1))) (A 1 (A 0 2)) (A 1 4) (A 0 (A 1 3)) (A 0 (A 0 (A 1 2))) (A 0 (A 0 (A 0 (A 1 1)))) (A 0 (A 0 (A 0 2))) (A 0 (A 0 4)) (A 0 8) = 16 (h 4) = 65536 (A 2 4) = 65536 즉, (h n) = 2^(A 2 n-1)
맨 마지막 문제 규칙 찾기가 너무 어렵네요.