【问题标题】:How to find coefficient of x^m in the polynomial? [closed]如何在多项式中找到 x^m 的系数? [关闭]
【发布时间】:2023-03-20 05:29:02
【问题描述】:

如何求系数

x^m (m<=n)

在类型的多项式中

(a1+b1x)(a2+b2x)...(an+bnx)? O(n^2)

需要算法!

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于纯数学,而不是编程问题。
  • 纯数学方法并不总是适合这个问题,因为 n!对于相当大的输入,复杂性是不真实的,因此需要优化算法
  • 这个问题全是关于在可行时间复杂度下计算所需答案的动态规划解决方案。每个系数都不能用笔和纸来计算。因此,必须有某种方法使流程自动化。

标签: c algorithm dynamic-programming polynomial-math


【解决方案1】:
(a1+b1x)(a2+b2x)...(an+bnx)=b1*b2*...*bn*(a1/b1+x)*(a2/b2+x)...(a/bn+x)

右边部分是有根的多项式 (-a1/b1,-a2/b2...-an/bn)

这个多项式的系数有O(N^2)个算法,实现here

(别忘了将系数乘以 b[i] 的乘积)

【讨论】:

    【解决方案2】:

    就我个人而言,我会使用二项式定理的归纳应用。

    http://en.wikipedia.org/wiki/Binomial_theorem

    这将解决您的两个二项式的基本情况。然后剩下的只是使用乘法的关联性重复应用程序。

    不过,我对 C 的了解还不够多,无法编写此内容,对不起。

    【讨论】:

      【解决方案3】:

      m-th 元素的系数是 i0m 之间的所有 (a or b)[i] 的所有可能乘积的总和,因此恰好有 m 选择 b(和 @ 987654331@a 的选择)。

      在程序上,generate 所有combinations 之间的整数在0m 之间,在这些索引处乘以a 的元素,得到每个组合的complement,并将获得的乘积进一步乘以b 在这些索引处的元素。将所有获得的产品加在一起。

      【讨论】:

        猜你喜欢
        • 2016-05-15
        • 2021-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多