開發平台(Platform): (Ex: Win10, Linux, ...)
ubuntu 12.x
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
g++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
大家好 最近遇到一個演算法的問題
題目是要求解 a1/(1+a1*b1*s) + a2/(1+a2*b2*s)... + an/(1+an*bn*s)
加總後的各個係數
以2項為例就是:
a1/(1+a1*b1*s) + a2/(1+a2*b2*s) =
分母通分 → [a1(1+a2*b2) + a2(1+a1*b1)] *s / (1+a1*b1*s)(1+a2*b2*s) =
[a1(1+a2*b2) + a2(1+a1*b1)] *s / [1 + (a1*b1+a2*b2)s + (a1*b1*a2*b2)s^2]
上式中黃色部份即為所求
題目的多項式用暴力展開可以得到分母部份可以用組合公式把每一項求出
但若 n的值太大組合數會超多 計算量也跟著爆炸
不知道像這種題目有沒有什麼更好的解法呢
述敘的有點亂請大家見諒 也謝謝大家幫忙 Q_Q
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
補充說明(Supplement):