введите здесь описание изображения
«⊕» — это побитовая операция XOR.
Я думаю, что алгоритм Карацубы можно использовать для решения проблемы, но когда я пытаюсь использовать XOR вместо + в алгоритме Карацубы, трудно получить подзадачу.
введите здесь описание изображения
«⊕» — это побитовая операция XOR.
Я думаю, что алгоритм Карацубы можно использовать для решения проблемы, но когда я пытаюсь использовать XOR вместо + в алгоритме Карацубы, трудно получить подзадачу.
теорема свертки дает вам
F(C) = F(A) . F(B)
где F
— преобразование Фурье, в данном случае преобразование Адамара, а .
— точечное умножение. Используя быстрое преобразование Уолша-Адамара, вы можете вычислить F(A)
, F(B)
и, наконец, C
(используя инверсию) в O(n log n)
операциях. Точечное умножение просто O(n)
.
O(n log n)
. - person Nelfeal   schedule 03.12.2018