【问题标题】:Polynomial Multiplication | Algorithms多项式乘法 |算法
【发布时间】:2012-03-15 19:45:57
【问题描述】:

我正在训练我的 C++,我正在尝试编写一个库,该库将能够使用 XOR 链表表示以下数字:

999999999 * ( [i=0]Σ[999999999] 1000000000 ^ i )

例如,如果我的号码是 711381450277869054011,它会这样表示:

711 * 1000000000^2 + 381450277 * 1000000000^1 + 869054011 * 1000000000^0

或者简单地说:

711 * X^2 + 381450277 * X^1 + 869054011 * X^0

我为我的班级重载了* 运算符,但我认为我使用的算法很笨拙。

我本来打算去Karatsuba algorithm,但由于它是递归的,它会导致堆栈溢出。

然后我检查了Toom-3 algorithm。我喜欢它,但我无法应用它,因为我还没有编写负数。

我的问题是:你建议什么算法最适合多项式乘法?有什么好的算法我需要看看吗?

【问题讨论】:

    标签: algorithm biginteger multiplication polynomial-math


    【解决方案1】:

    您可以使用Fast Fourier transform 来执行它。它也存在非递归实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      相关资源
      最近更新 更多