什么是除数最有效的算法?


12

abababO(mlogmloglogm)mmax{a,b}Ω(mlogmloglogm)这个问题的下限?

感谢和问候,如果这是一个幼稚的问题,我们深表歉意。


AFAIK没有已知的非平凡下限。我相信通过牛顿法,乘法和除法具有基本相同的复杂度(尽管可能高达对数对数吗?),并且由于乘法没有已知的非线性下界,因此我认为该形式的任何下界您要说的是主要结果。
史蒂文·斯塔德尼基

(实际上,现在来看,我认为对数对数因子消失了,因为当您进行非恒定数量的乘法运算时,它们的长度并不相同,因此可以以相同的方式吸收超线性因子,例如,在仍然是线性的,即使它具有非恒定数量的“线性”因子。)k=1lgnn2kn
Steven Stadnicki

Answers:


4

将我的评论充实为答案:由于可除性(平凡)可简化为除法,并且由于除数可(非平凡)可通过牛顿法等方法简化为乘法,因此您的问题应具有与整数乘法相同的时间复杂度。AFAIK,没有已知的下界比平凡的线性下界更好,因此,您的问题也应如此-尤其是,因为已知乘法(基本上)具有算法,您对下限的期望几乎肯定是徒劳的。O(nlognlogn)nlognloglogn

依我所知,除法可以精确地降低乘法的复杂度,其原因是牛顿方法将执行一系列大小递增的乘法。这意味着,如果有一种算法用于复杂度那么使用该乘法算法作为中间步骤的除法算法的复杂度将沿着 —对于正在讨论的所有复杂度类,它都是。Θ(f(n))Θ(k=0lgnf(n2k))Θ(f(n))


2
Nitpick:即使我们假设没有比目前已知的最佳算法更好的乘法算法,我也看不出如何从这种推理中获得下界。您的减少意味着除数比乘法难。但除数仍然可能比除法更容易,而比乘法更容易,因为除数只需要是/否答案,而不是数字。(至少,您提到的减少似乎并未排除这一点。)
DW

2
@DW同意,这是一个很好的观点;但我并没有试图将其降低。更确切地说,要点是,除数的任何下限都意味着相乘的相应下限,并且由于在平凡的线性范围之外没有已知的此类界限,因此得到除数上的任何优于线性的下限(这是OP要求的可能性很小。
史蒂文·斯塔德尼基

@DW 对于整除的线性上限,我不会感到完全震惊,正如您所说的那样,这并不特别意味着有关乘法上限的任何内容,但是在AFAIK方向上没有特定的结果。
史蒂文·斯塔德尼克

-2

我认为某些数字以3,7等结尾的是吠陀语的骇客类型,或者以2 ^ n除数为基础...

但是一般来说,最快的除法算法似乎是常态。

我不知不觉中发现的最好的就是Knuth的Seminumerical方法的算法D ...虽然从未检查过它的正确性。它或多或少地以O(mn-n ^ 2)的形式运行,其中m和n是被除数和除数...不考虑乘法复杂度...

但是,下限可能令人惊讶地较低,因为您的问题仅与决策问题有关。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.