sicp

問1.14

count-changeで11セントの場合 ▼答え http://d.hatena.ne.jp/winebarrel/20070325/p1 ▼プロセスの木構造を書け 5×2,1 5,1×2 1×11 ▼スペースとステップの増加の程度は? ステップ数 - O(amount^kinds-of-coins) スペース - O(amount) うー、よくわからん ステ…

問1.12

Pascal三角形を 再帰的プロセスで解く Pascal三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1yx: 1 2 3 4 5 1 : 1 2 : 1 1 3 : 1 2 1 4 : 1 3 3 1 5 : 1 4 6 4 1 6 : 1 5 10 10 5 1 7 : 1 6 15 20 15 6 1x = 1 1 x = y 1 f(x, y - 1) + f(x - 1, y - 1)(defun ff (x y…

問1.11

再帰的プロセス ▼n f(n) = n ▼n >= 3 f(n) = f(n-1) + 2f(n-2) + 3f(n-3)f(0) = 0 f(1) = 1 f(2) = 2f(3) = 2 + 2*1 + 3*0 = 4f(4) = 4 + 2*2 + 3*1 = 11f(5) = 11 + 2*4 + 3*2 = 25(defun ff (n) (cond (( (t (+ (ff (- n 1)) (+ (* 2 (ff (- n 2))) (+ (* …

フィボナッチ数

fibonacci フィボナッチ数 線形反復版 (define (fib n) (fib-iter 1 0 n)) (define (fib-iter a b count) (if (= count 0) b (fib-iter (+ a b) a (- count 1)))

フィボナッチ数

fibonacci フィボナッチ数 (defun fib (n) (cond ((= n 0) 0) ((= n 1) 1) (t (+ (fib (- n 1)) (fib (- n 2)))))) fib(fib 5) 5

問1.10

じょじょに頭が。。 (define (A x y) (cond ((= y 0) 0) ((= x 0) (* 2 y)) ((= y 1) 2) (else (A (- x 1) (A x (- y 1)))))) (defun A (x y) (cond ((= y 0) 0) ((= x 0) (* 2 y)) ((= y 1) 2) (t (A (- x 1) (A x (- y 1)))))) A (A 1 10) 1024 (A 2 4) 65…

問1.9

(define (+ a b) (if (= a 0) b (inc (+ (dec a) b))))(+ 4 5) (inc (+ 3 5)) (inc (inc (+ 2 5))) (inc (inc (inc (+ 1 5)))) (inc (inc (inc (inc (+ 0 5))))) (inc (inc (inc (inc (5))))) (inc (inc (inc (6)))) (inc (inc (7))) (inc (8)) 9(define (+ …

問1.7

許容値に対してあまりに大きい/小さい数だと 計算の精度が悪くなる。 (defun abs (x) (cond ((> x 0) x) ((= x 0) 0) (( abs (defun average (x y) (/ (+ x y) 2)) average (defun improve (guess x) (average guess (/ x guess))) improve (defun square (x…

問題1.6

いろいろ調べてみると無限ループに陥るらしいが xyzz lispでは処理が正常終了する。。

平方根の値の計算

平叙文(数学)と命令文(プログラム)の確認問題 じょじょに値を近づけていく方法で平方根の値を算出している (defun abs (x) (cond ((> x 0) x) ((= x 0) 0) (( abs (defun average (x y) (/ (+ x y) 2)) average (defun improve (guess x) (average guess (/ …

問1.4-1.5

問1.4 CL(xyzz_editor_lisp)ではできないみたいです (defun a-plus-abs-b (a b) ( (if (> b 0) + -) a b)) a-plus-abs-b (a-plus-abs-b 1 -2) 不正な関数です: (if (> b 0) + -)問1.5 (defun p () (p)) p (defun test (x y) (if (= x 0) 0 y)) test (test 0 …

問題1.2-1.3

問題1.2 5+4+(2-(3-(6+4/5)))/3(6-2)(2-7) を前置記法に翻訳する ↓ (/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 5))))) (* 3 (- 6 2) (- 2 7))) -37/150問1.3 (defun square (x) (* x x)) square (defun hi (i j) (if (> i j) i j)) hi (defun lo (i j) (if ( lo (defun …

問題1.1

sicp(日本語訳版)を読み始めました ※問題はschemeじゃなくてCLでやってます(^。^;) 問題1.1 10 10(+ 5 3 4) 12(- 9 1) 8(/ 6 2) 3(+ (* 2 4) (- 4 6)) 6(setf a 3) 3(setf b (+ a 1)) 4(+ a b (* a b)) 19(= a b) nil(if (and (> b a) ( b a) 4(cond ((= a 4…