Скоростные свойства алгоритмов умножения и деления целых чисел произвольного размера
Приведено описание подходов к оценке быстродействия алгоритмов реализации операций умножения и деления целых чисел произвольной размерности на основе подсчета количества операций, выполняемых в ходе их обработки. Это позволяет определить границы применимости формы представления «длинных» чисел в виде одномерных массивов, в которых каждая цифра занимает один байт.
Авторы
Тэги
Тематические рубрики
Предметные рубрики
В этом же номере:
Резюме по документу**
УДК 681.142.2
Скоростные свойства алгоритмов умножения и деления
целых чисел произвольного размера
1
1 <...> Н.Э. Баумана, Москва, 105005, Россия
Приведено описание подходов к оценке быстродействия алгоритмов
реализации операций умножения и деления целых чисел произвольной
размерности на основе подсчета количества операций, выполняемых
в ходе их обработки. <...> В исключительных ситуациях, когда требуется оперировать числами
большего размера, необходима реализация алгоритмических
операций, выполняемых по специальным программам. <...> К таким операциям
относятся умножение и деление целых чисел произвольного размера. <...> Для представления целых чисел произвольного размера используется
модель, согласно которой каждая цифра целого числа располагается
в отдельном байте, представляя все число как массив цифрбайтов <...> 2013
1
1
зуются функции ByteBits( ), ByteBitPrint( ), ByteBitMass( ) и InputAB( )
для преобразования обычного строкового вида вводимых чисел к
байтовым массивам хранения и отображения этих чисел. <...> Для реализации умножения целых десятичных чисел
в байтовом представлении ниже приведена программа MI01, в
которой вычисляется произведение ca b= . <...> В подключаемом файле
#include MultCarry.h находится функция MultCarry( ) для переноса
цифр, возникающих в результате поразрядного умножения. <...> В подключаемом
файле ByteBitMult.h находится сама функция умножения
ByteBitMult( ), которую рассмотрим далее. <...> Перенос цифр заключается в том, чтобы
оставить в разряде только биты, относящиеся к младшим цифрам из
2
ISSN 2305-5626. <...> Старшая цифра прибавляется к цифре следующего
старшего разряда. <...> В интерфейсе
функции параметр unsigned char* c является указателем байтового
массива с числом, полученным после поразрядного умножения. <...> Параметр
int nc содержит длину числа без знака. <...> Параметр int k задает индекс
байта, с которого следует оценивать перенос. <...> Инициализация int j = k занимает одну
операцию:
W 1. <...> Умножение целых чисел произвольного
размера в байтовом представлении проводится в приведенной ниже
функции <...>
** - вычисляется автоматически, возможны погрешности
Похожие документы: