如何计算具有时间复杂度O(n log n)的XOR(二进)卷积

时间:2018-12-03 10:25:30

标签: algorithm divide-and-conquer

enter image description here

“⊕”是按位XOR运算。

我认为可以使用Karatsuba的算法来解决该问题,但是当我尝试在Karatsuba的算法中使用XOR而不是“ +”时,很难找到子问题。

1 个答案:

答案 0 :(得分:2)

convolution theorem给您

IWebElement next = browser.FindElement(By.XPath("//div[contains(@class, 'm-modal__arrow')]"));
        next.Click();
IWebElement tru2 = browser.FindElement(By.XPath("/html[1]/body[1]/ngb-modal-window[1]/div[1]/div[1]/sk-main-dialog[1]/div[2]/div[6]/div[1]/div[1]/div[7]"));
        Console.WriteLine(tru2.Text);

其中F(C) = F(A) . F(B) 是与傅立叶相关的变换,在这种情况下是Hadamard变换,而F是逐点乘法。使用fast Walsh–Hadamard transform,您可以在.操作中计算F(A)F(B),最后是C(使用反函数)。逐点乘法就是O(n log n)