HW2 解答


Ex1.2
   (/  (+  5  4  (-  2  (-  3  (+  6  (/  4  5) ) ) ) )
       (*  3  (-  6  2)  (-  2  7) ) )

   大部份人都答對了,但有些同學把 (/  4  5) 寫成 4/5
   這樣的情形 -0.5 分

Ex1.3
   (define (sum-of-big2 x y z)
      (if (> x y)
         (if (> y z) (+ (* x x) (* y y))
                     (+ (* x x) (* z z)) )
         (if (> x z) (+ (* y y) (* x x))
                     (+ (* y y) (* z z)) ) ) )

   此題很多同學都有一點小錯誤,被扣分的同學請自行檢查一下
   當三個數中兩個較小的數相等時,你的程式是否正確。

Ex1.10
   (A 1 10) = 1024
   (A 2  4) = 65536
   (A 3  3) = 65536

   f(n) = 2*n
   g(n) = 0    if n=0
          2^n  if n>0
   h(n) = 2^2^2...  共 n 個 2

   此題 g(n) 很多同學沒有考慮到 n=0 的情況。
   不過好像課本題目是說 positive integer,所以這題被扣分的
   同學我已把分數加回去了!

Ex1.13
   證明分成兩個部份:
   (1) 用數學歸納法證明 Fib(n) = (Φ^n - Ψ^n) / √5
   (2) 證明對任意的 n > 0, (Φ^n / √5) - Fib(n) < 0.5

   有些同學沒有證 (2) 或是並非證明對所有的 n ,這樣扣 1 分。
   在 (1) 中,因為 Fib(n) = Fib(n-1) + Fib(n-2) ,
              所以 base case 要有兩個,assumption 也要有兩個。
   有些同學並非用歸納法證,但大部份都解釋不清。
   要說清楚用 recurrence relation 來解,或是 generating function
   或是 characterictic function....