![]() |
![]() |
Aelita |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: ![]() ![]() ![]() |
Мне нужен модуль для очень быстрых операций с довольно большими числами (256 бит) со знаком.
Т. е. что-то типа Int256. Причем принципиальна именно скорость, так как программе приходится выполнять многие миллионы перемножений и сложений. В Интернете есть довольно много разных модулей с массой операций для очень-очень больших чисел (тысячи десятичных знаков). Какой из них самый быстрый (для чисел не очень-то длинных: 256 бит)? Или есть какой-то шустрый код в какой-нибудь классической книге? Кто профи в этом вопросе, откликнитесь, плиз. ![]() P. S. Я работаю во FReePascal-e |
![]() ![]() |
Aelita |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: ![]() ![]() ![]() |
Большое спасибо, volvo
![]() Размещаю упрощенный вариант моей программы. Она работает с символьными комплексными выражениями с целыми коэффициентами, включая определители небольших матриц. Фактически, программа просто раскрывает скобки и таким образом проверяет, равна ли правая часть формулы левой. (В полном варианте программа работает с гиперкомплексными числами и раз в 5 длиннее). В полном варианте приходится многие миллионы раз производить примерно следующее: пара чисел (именно чисел, а не символьных выражений) порядка 10^20--10^35 умножается, результат складывается (вычитается) с произведением другой подобной пары чисел (т. е. на 2 этапе складываются 2 знаковых числа порядка 10^60--10^70), после чего итог сравнивается с неким заданным числом. (При равенстве программа выходит из цикла; если равенства не было, выдает сообщение о неудаче.) Для иллюстрации этого я добавила небольшую подпрограмку NConstructor, имитирующую реальные процессы. Кроме того, помещаю небольшой тестовый файл, иллюстрирующий действие программы (программа запускается на этот файл, все тесты должны давать 0). Последний тест в этом файле как раз запускает NConstructor. Для измерения времени только его и нужно оставить. Программа конечно весьма кривая, но как известно отстрел пианистов строго запрещен законом. Если нужны комментарии, не вопрос. Сообщение отредактировано: Aelita - 12.03.2006 20:54 Прикрепленные файлы ![]() ![]() |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 19:43 |