开发平台(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):