2010-05-15 69 views
1

例如乘以多項式:(3X - 5X + 2)(7X + 1),你把它簡化這樣的:幫助與口齒不清

((3 2)(-5 1)(2 0))((7 1)(1 0)) 
((21 3)(3 2)(-35 2)(-5 1)(14 1)(2 0)) 
(21 3)(32 2)(9 1)(2 0) 

,你會得到這樣的回答:21X + 32X + 9X + 2

我需要在口齒不清該解決方案,請幫助

+0

這功課嗎?如果是這樣,你應該這樣標記它。 – 2010-05-15 06:46:05

+0

首先,檢查你的代數 - 你的答案是不正確的。然後,向我們展示迄今爲止您嘗試過的內容。你有什麼麻煩? – 2010-05-15 06:48:27

+0

爲什麼它錯了? 你寫: (3x2-5x + 2) 像 ((3 2)(-5 1)(2 0)),所以你先寫3然後將電源2如果5具有一個簡單的X則是1,如果我們沒有X,則是0 下一步你multyply並添加((AB)(CD))((FG)(JK))=(((A * F) (b + g))((a * j)(b + k))((c * f)(d + g))((c * j)(d + k))) 然後你結合: (3 2)與(-35 2)和(-5 1)與(14 1) ,然後轉換並計算21x3 + 32x2 + 9x + 2 – iulia 2010-05-15 08:13:44

回答

0

第一階段,你需要配對每RHS組件每LHS組件;這兩套笛卡爾產品。這需要一個兩級映射,然後將第二級對列表串聯到一個頂級列表中(請考慮(apply #'append ...)。

第二階段可以通過減少來建立一個關聯列表,在指數上鍵入。

編輯:讓我來解決不同的問題給你,讓你弄清楚如何將其轉化爲你的問題的解決方案:首先擴大到對,然後將乘積相加

計算(a + b + ... + k) * (l + m + ... + z)

(defun mul-sums (aa bb) 
    (reduce #'+ 
      (apply #'append 
       (map 'list 
         #'(lambda (a) 
          (map 'list 
           #'(lambda (b) 
            (* a b)) 
           bb)) 
         aa)))) 
; Compute (1 + 2 + 3) * (3 + 4). 
> (mul-sums '(1 2 3) '(3 4)) 
42 
+0

你能給出一個起點嗎?如何開始? – iulia 2010-05-17 06:43:45

+0

非常感謝我會盡力 – iulia 2010-05-17 12:20:05