2013-04-09 61 views
1

我想找到一個序列對中的序列號。我試圖編寫一個程序來驗證f(1,n)= 2n-2和f(m + 1,n + 1)= 2f(m,n)。我打電話時(99號,100號),但它在我打電話時不起作用(號碼100,100)。爲什麼它不起作用? (100,100)的序號是多少?一對中的序列號

這裏是我的方法:

(define (number m n) 
    (if (= m 1) 
     (- (* 2 n) 2) 
     (* 2 (number (- m 1) (- n 1))))) 
+0

你應該更好地解釋一下你的意思是「一對中的序列號是多少」。什麼序列?公式來自哪裏? – 2013-04-09 03:44:03

回答

2

爲什麼你認爲該過程「不工作」?的功能,如所定義,正確地實現所需的式 - 和將總是導致這種鹼情況下,當兩者mn相等:

(- (* 2 1) 2) ; if m equals 1 then n equals 1 

上面將返回當然0,並在所有的乘法遞歸將取消,因爲你會被過零乘以被一遍又一遍:

(* 2 (* 2 ... (* 2 0))) 
=> 0 

所以,問題不在於過程本身,但配方中它的實施。確保它是正確的。