1.24 와 같은 문제로 직접 실험한 수치는 제공하지 못했습니다. fast-expt 도 사용해도 결과는 나올 수 있습니다. 다만 기존의 expmod 프로시져와의 차이점을 살펴봐야 하는데. fast-expt 를 사용했을 경우 지수 승을 한 큰 값을 미리 다 계산한다는 점이 좋지 않습니다. 원래 expmod 에서는 remainder 와 square 그리고 * 가 섞여서 계산되기 때문에...

[CODE](define (fast-prime? n times)  (cond ((= times 0) #t)        ((fermat-test n) (fast-prime? n (- times 1)))        (else #f)))(define (fermat-test n)  (define (try-it a)    (= (expmod a n n) a))  (try-it (+ 1 (random (- n 1)))))(define (expmod base exp m)  (cond ((= exp...

  How to be happy - 행복도 연습이 필요하다  소냐 류보머스키 지음, 오혜경 옮김 사회심리학자로서 인간의 행복을 증진시키는 데 관심을 가져 온 소냐 류보머스키 교수가 '사이콜리지컬 불리틴'에 발표한 내용을 근간으로 그 동안의 연구 내용을 알기 쉽게 풀어서 정리한 것이다. 행복의 수준을 높이는 데 효과가 있는 것으로 검증된 12가지 행복 연습...

1.22 의 풀이에 다음의 코드만 수정, 추가 한다. [CODE] (define (find-divisor n test-divisor)     (cond ((> (square test-divisor) n) n)           ((divides? test-divisor n) test-divisor)           (else (find-divisor n (next test-divisor))))) (define (next n)   (cond ((= n 2) 3)  ...

[CODE](define (smallest-divisor n)        (find-divisor n 2))           (define (find-divisor n test-divisor)        (cond ((> (square test-divisor) n) n)              ((divides? test-divisor n) test-divisor)              (else (find-divisor n (+ test-divisor 1)))))     ...

[CODE](define (smallest-divisor n) (find-divisor n 2)) (define (find-divisor n test-divisor) (cond ((> (square test-divisor) n) n) ((divides? test-divisor n) test-divisor) (else (find-divisor n (+ test-divisor 1))))) (define (divides? a b) (= (remainder b a) 0)) (define (prime? n) (= n (smallest-divisor n))) (define (square x) (* x x)) [/CODE] 실행...

SICP 연습문제 풀이 1.20 (gcd 206 40) In normal order evaluation =>(if (= 40 0)       206       (gcd 40 (remainder 206 40))) =>(gcd 40 (remainder 206 40)) =>(if (= (remainder 206 40) 0)       40       (gcd (remainder 206 40) (remainder...

프로그래머들이 야근을 자주 한다는 이야기는 이미 숱하게 들어서 아실 겁니다. 오늘은 하고 싶지 않은 데 반 강제로 하게 되는 야근말고 자기가 좋아서 하게 되는 야근 이야기를 좀 해볼까 합니다. 유독 프로그래머 중에는 일 중독, 야근 중독이 사람들이 많습니다. 저녁 먹고 나면 그 때부터 제대로 시작하는 거지요. 적당히 늘어진 자세로 아무도...

SICP 연습문제 풀이 1.19 이것을 행렬로 표현하면 그러므로 답은 (define (fib n)   (fib-iter 1 0 0 1 n)) (define (fib-iter a b p q count)   (cond ((= count 0) b)         ((even? count)          (fib-iter a            ...

SICP 연습문제 풀이 1.18 (define (double a) (* a 2)) (define (halve a) (/ a 2)) (define (mult a b)   (define (mult-iter a b c)     (cond ((= b 0) c)           ((even? b) (mult-iter (double a) (halve b) c))        ...