`
Bloodwolf
  • 浏览: 88777 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
Windows下如果需要改变文本文件的编码,通常可以用记事本或其他文本编辑器打开,另存为其他编码格式即可。Linux有个enca工具可以做到这一点:   enca -x UTF-8 textfile.txt   该命令可以将textfile.txt转变为UTF-8编码。   enca也可以查看文本文件编码:   enca textfile.txt   更多的选项可以man enca。    

sicp 1.15

    博客分类:
  • SICP
利用三角恒等式:sin x = 3sin(x/3) - 4sin(x/3)^3,求值sin x,当x足够小时,sin x = x。 过程如下   (define (sine angle) (if (<= (abs angle) 0.1) angle (p (sine (/ angle 3.0))))) (define (p x) (- (* 3 x) (* 4 (cube x)))) (define (cube x) (* x x x))   求值(sine 12.15),p将使用多少次? 12.15 * (1/3)^n <= ...

sicp 1.14

    博客分类:
  • SICP
如下过程:   (define (count-change amount) (cc amount 5)) (define (cc amount kinds-of-coins) (cond ((= amount 0) 1) ((or (< amount 0) (= kinds-of-coins 0)) 0) (else (+ (cc amount (- kinds-of-coins 1)) (cc (- amount (first-denomination kinds-of-coins)) kinds-of-coins))))) (defi ...

sicp 1.13

    博客分类:
  • SICP
证明Fibonacci数列F(n)是最接近(a^n) / sqrt(5)的整数,其中a=(1+sqrt(5)) / 2。   F(n) = 0, n = 0           1, n = 1           F(n-1) + F(n-2), n > 1   此递归式的特征方程为 C(t) = t^2 - t - 1 = 0,求解得t1 = (1+sqrt(5)) / 2,t2 = (1-sqrt(5)) / 2 设F(n) = k1t1^n + k2t2^n,代入初始条件,求解得k1 = 1/sqrt(5),k2 = -1/sqrt(5) 则F(n) = (t1^n ...

sicp 1.12

    博客分类:
  • SICP
递归过程求解Pascal三角形:   (define (pascal-tri row col) (cond ((or (< row col) (<= row 0) (<= col 0)) 0) ((or (= col 1) (= col row)) 1) (else (+ (pascal-tri (- row 1) col) (pascal-tri (- row 1) (- col 1))))))  

sicp 1.11

    博客分类:
  • SICP
递归和迭代两种过程求解: f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3), n>=3 f(n) = n, n<3   (define (f-r n) (if (< n 3) n (+ (f-r (- n 1)) (* 2 (f-r (- n 2))) (* 3 (f-r (- n 3)))))) (define (f-i n) (define (iter a b c count) (if (= count 0) a (iter b c (+ c (* 2 b) (* 3 a)) (- ...

sicp 1.10

    博客分类:
  • SICP
Ackermann函数:   (define (A x y) (cond ((= y 0) 0) ((= x 0) (* 2 y)) ((= y 1) 2) (else (A (- x 1) (A x (- y 1))))))   (A 1 10): 1024 (A 2 4): 65536 (A 3 3): 65536   下面3个过程:   (define (f n) (A 0 n)) (define (g n) (A 1 n)) (define (h n) (A 2 n))   分别表示: (f n): 2n (g n): ...

sicp 1.9

    博客分类:
  • SICP
两种方式计算(+ 4 5)   (define (+ a b) (if (= a 0) b (inc (+ (dec a) b)))) (define (+ a b) (if (= a 0) b (+ (dec a) (inc 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)))) ...

sicp 1.8

    博客分类:
  • SICP
求立方根的牛顿法:     (define (cube-root x) (cube-root-iter 1.0 0.5 x)) (define (cube-root-iter guess prev-guess x) (if (good-enough? guess prev-guess) guess (cube-root-iter (improve guess x) guess x))) (define (good-enough? guess prev-guess) (< (/ (abs (- guess prev-guess)) prev ...

sicp 1.7

    博客分类:
  • SICP
牛顿法求平方根,实现good-enough?的另一种策略,监视猜测值从一次迭代到下一次迭代的变化情况:   (define (sqrt x) (sqrt-iter 1.0 0.5 x)) (define (sqrt-iter guess prev-guess x) (if (good-enough? guess prev-guess) guess (sqrt-iter (improve guess x) guess x))) (define (good-enough? guess prev-guess) (< (/ (abs (- gues ...

sicp 1.6

    博客分类:
  • SICP
if的新版本,用cond实现的new-if:   (define (new-if predicate then-clause else-clause) (cond (predicate then-clause) (else else-clause)))   重写的求平方根的程序:   (define (sqrt-iter guess x) (new-if (good-enough? guess x) guess (sqrt-iter (improve guess x) x)))   如果是正则序求值,if的新版本可以正确运行。 ...

sicp 1.5

    博客分类:
  • SICP
下面这段代码:   (define (p) (p)) (define (test x y) (if (= x 0) 0 y)) (test 0 (p)) 应用序(applicative-order)求值: (test 0 (p)) (test 0 (p)) ... 求值过程不会结束,DrScheme即是应用序求值   正则序(normal-order)求值: (test 0 (p)) (if (= 0 0) 0 (p)) 0 结果为0

sicp 1.4

    博客分类:
  • SICP
运算符为复合表达式:   (define (a-plus-abs-b a b) ((if (> b 0) + -) a b))     求值过程:   (a-plus-abs-b 3 -5) ((if (> -5 0) + -) 3 -5) (- 3 -5) 8

sicp 1.3

    博客分类:
  • SICP
定义一个过程,返回3个数中较大的2个数之和。   (define (sum-max2 a b c) (cond ((and (< a b) (< a c)) (+ b c)) ((and (< b a) (< b c)) (+ a c)) ((and (< c a) (< c b)) (+ a b))))

sicp 1.2

    博客分类:
  • SICP
将下面的式子写为scheme表达式:           (/ (+ 5 4 (- 2 (- 3 (+ 6 4/5)))) (* 3 (- 6 2) (- 2 7)))
Global site tag (gtag.js) - Google Analytics