1.2
1.2.4
昨日の1.16まちがっとるがな…
1.19とか計算するだけでなんかおもろない
1.2.5
GCDの話.数学的なことだけでおしまい
1.2.6
確率的手法
グループ
SICPのグループを発見した.次から記事はそっちにかく
解答
;;; 1.16 again ;;; (define (fast-expt-iter x n temp) (cond ((= n 0) temp) ((even? n) (fast-expt-iter (* x x) (/ n 2) temp)) (else (fast-expt-iter x (- n 1) (* temp x))))) (define (fast-expt x n) (fast-expt-iter x n 1)) (fast-expt 2 10) ;;; 1.17 ;;; (define (*2 a b) (cond ((= b 0) 0) ((even? b) (double (*2 a (halve b)))) (else (+ a (*2 a (- b 1)))))) ;;; 1.18 ;;; (define (*-iter a b temp) (cond ((= b 0) temp) ((even? b) (*-iter (double a) (halve b) temp)) (else (*-iter a (- b 1) (+ a temp ))))) (define (*3 a b) (cond ((= b 0) 0) (else (*-iter a b 0)))) ;;; 1.19 ;;; ;p'= p^2 + q^2 ;q'= 2pq + q^2 ;;; 1.20 ;;; (define (gcd a b) (if (= b 0) a (gcd b (remainder a b)))) ;;; normal order (gcd 206 40) (gcd 40 (r 206 40)) ;; b > 6, r = 1 (gcd (r 206 40) (r 40 (r 206 40))) ;; b > 4, r = 1 + 2 = 3 (gcd (r 40 (r 206 40)) (r (r 206 40) (r 40 (r 206 40)))) ;; b > 2, r = 3 + 4 = 7 (gcd (r (r 206 40) (r 40 (r 206 40))) (r (r 40 (r 206 40) (r (r 206 40) (r 40 (r 206 gcd)))))) ;; b > 0, r = 7 + 7 = 14 (r (r 206 40) (r 40 (r 206 40))) ;; r = 14 + 4 = 18