原创 SICP ex1-10 order of Growth

本來是覺得這個題目蠻簡單的沒打算寫一篇博客後來發現還挺麻煩的,就寫下來順便讓自己開心一下 題目背景:由ex1-9的change 遞歸版本,對(change 11 5)函數展開,求取空間的O和時間的O 首先我們畫一個樹狀圖,由於展開較大,此

原创 SICP ex1-23 ex1-25

今天的題目要求編程 1-23要求運用Simpson'sRule來求積分 公式=h/3[y0+4y1+2y2+4y3+2y4...+2y(n-2)+4y(n-1)+yn] h=(b-a)/n yk=f(a+kh) (define (inte

原创 SICP EX1-9 change 問題

題目背景:給定一個數額,現有5種面額的硬幣提供選擇,編程計算共有多少種change方案 思路一:sicp中給定的遞歸思路(將該問題化爲數額更小的子問題,以及硬幣種類更少的子問題);;text1-9.scm(define (change n

原创 SICP ex1-11 ex1-12 ex1-14

ex1-11 要求用迭代的方式實現fast-exp,由於給出的HINT比較詳細,指出(b^n/2)^2=(B^2)^(n/2),當n爲偶數,直接二分,當n爲奇數,我們將一個值單獨取出放到係數中來 具體代碼如下: (define (iexp

原创 SICP ex 2-16 2-21 Sequences

ex2-16 2-17 2-18要求給出線性表的最後一個元素值,將線性表倒置,以及對每個元素進行平方操作 給出最後一個元素比較簡單,我們直接利用遞歸檢測直到下一個元素爲空,我們給出本元素的值即可 將線性表倒置,由於之前我簡單嘗試了自己編寫

原创 SICP ex1-20 ex1-22

1-20題意,有人認爲既然我們已經知道了fast-exp的計算方式,那麼我們的expmod就顯得多餘,我們可以直接計算fast-exp mod n代替expmod 他這樣想對嗎 直接上代碼 (define (reminder x y) (

原创 SICP ex2-25 - ex 2-27

本節主要介紹了的一種樹的數據結構 ex2-25要求給出一種deep-reserve 的程序使 ((1 2) 3 4)能夠變爲(4 3 (2 1) ) 這個程序我們只需要加一個pair?檢測,當爲序列對時進行遞歸調用即可 ex2-26要求給

原创 SICP ex2-45

終於有習題了,但是這次的primitive put 和 get 會報錯,代碼無法測試,所以不給出代碼 2.45要求將之前的求導函數利用添加type的方式進行選擇 type 則根據運算符來加 問題爲什麼不把constant以及same-va

原创 SICP ex1-30 ex1-31

ex1-30 本題要求比較brute-force method 以及 golden method 計算單峯函數 的極大值所需要的函數值計算次數 我們先計算brute-force method 時間爲2log2 (L/T) 其中L爲初始區

原创 SICP ex1-17 ex-18 ex1-19

這道題的題目背景:用尋找最小divisor判斷素性的方法O(n^(1/2))編寫一個能給出給定範圍素數的程序,並能夠計算程序進行的時間 首先我們創建能夠判斷素數的函數 然後我們用給定範圍內的奇數去判斷 (define (test n)

原创 SICP(1985) ex2-2 line-segment

要求創建一個數據類型線段,能夠給出線段中點 比較簡單,直接上代碼(define (make-line-segment start-point end-point) (cons start-point end-point)) (defin

原创 SICP ex2-3 2-4 2-5(lambda calculus)

2-3要求解釋(define (cons x y) (lambda (m) (m x y))) (define (car z) (z (lamb

原创 SICP ex2-6 2-15 Alyssa

ex2-6 2-12 一連串問題過多,不再贅述,前面幾個難度都不是很大 (define (make-interval a b) (cons a b)) (define (upper-bound x) (cdr x)) (define

原创 SICP ex 1-27

由於ex1-27是對於26的改進,所以直接給出27 要求,之前的模板,其實我們可以採用filter-accumulate的更通用的模板來抽象(filter-accumulate combiner null-value predicate

原创 SICP ex1-15

題目背景:利用輾轉相除法計算最大公因數 要求利用normal-order evaluation展開gcd 並計算O(假設時間界與reminder成比例) 首先我們利用例子(gcd 206 40)進行探索 (gcd 206 40) if 判