Нужен быстрый алго умножения (в частности возведения в квадрат) больших целых чисел (примерно 15мб знаков) Python считает, но оооочень долго! Он даже складывает таких 2 числа около пары суток, сложение я написал на дельфи делает за секунду (грубо говоря и то большую часть времени скидывает ответ в файл),
про умножение на pythone можно забыть... (2 числа в 2 раза меньше умножались у меня 52 часа, а при росте разрядов похоже експ-зависимость ) т.ч. думаю при умножении тоже будет приятный выигрыш
Делал кто-нибудь что-то подобное?
либа BigInt тоже медленная... по крайней мере складывает моя прога намного быстрее, чем из неё
я бы вот что сделал , я бы написал макрос замера времени выполнения твоего выполнения данных команд , далее написал бы версию твоего процессора и выложил бы числа которые учавствовали в вычисленнии , так понимаю прога на делфе , поэтому макросами не замеришь =) , но какнить иначе замерь. А потом уже можно будет судить что быстрее выполнится. На асме если грамотно построить вычисление будет всяк быстрее ...чем на Делфе
----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube
mak пишет:
На асме если грамотно построить вычисление будет всяк быстрее ...чем на Делфе я не про асм писал, а про питон
мне в общем не надо секунду делить на 2, мне и так устраивает...
я вообще-то про умножение спрашивал
Spirit а если все цифры в виде строк, каждую перекодировать?
у него представление числа в виде массива Number : Array Of LongWord;
только на перекодировку куча времени уйдёт... или там встроенные средства конвертации есть и я их проглядел???
s0larian пробовал, там ограничение до 30000 вроде
(я думал ты сам писал ради интереса... )
с 15..50 знаков и у питона нет проблемм, а 15млн как-то долгова-то
Кстати Crypto++ жив, в отличии от остальных... приятно, надо попробовать
Реализация длинки есть в java и c#, можешь попробовать на них реализовать, подсчёт факториалов всех чисел из [1;100] занял секунды полторы на яве (из них половину запускалась вм).