Какой есть самый быстрый алгоритм возвести длинное число в квадрат?

5 года назад от Sanikey

1 ответ



0 голосов
обычный, через FFT

представляешь как массив из цифр (можно больших цифр, лишь бы не превосходили половину разрядности) , все в плавающих, делаешь fft, перемножаешь почленно (*) , пишешь в тот же массив, делаешь обратное преобразование и складываешь.

 (*) - так получится свертка вместо кореляции, чтобы получить кореляцию, надо, если я правильно помню, перемножать каждое на комплексно-сопряженное.

итого n log n

можно погуглить "numerical rcipes in C", там и исходники были. Только fft лучше взять посовременне.
5 года назад от ChiJarvis301

Связанные вопросы

2 ответов
1 ответ