【发布时间】: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