例如乘以多項式:(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
我需要在口齒不清該解決方案,請幫助
例如乘以多項式:(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
我需要在口齒不清該解決方案,請幫助
第一階段,你需要配對每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
這功課嗎?如果是這樣,你應該這樣標記它。 – 2010-05-15 06:46:05
首先,檢查你的代數 - 你的答案是不正確的。然後,向我們展示迄今爲止您嘗試過的內容。你有什麼麻煩? – 2010-05-15 06:48:27
爲什麼它錯了? 你寫: (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