РУсскоязычный Архив Электронных СТатей периодических изданий
Инженерный журнал: наука и инновации/2013/№ 2/

Дихотомический поиск множителя целых чисел произвольного размера

Рассмотрены вопросы формирования множителя целых чисел произвольного размера по алгоритму дихотомического поиска и анализа количества выполняемых компьютерных операций при определении скоростных свойств алгоритма.

Авторы
Тэги
Тематические рубрики
Предметные рубрики
В этом же номере:
Резюме по документу**
УДК 681.142.2 Дихотомический поиск множителя целых чисел произвольного размера 1 А. Ф. Деон 1 МГТУ им. <...> Н.Э. Баумана, Москва, 105005, Россия Рассмотрены вопросы формирования множителя целых чисел произвольного размера по алгоритму дихотомического поиска и анализа количества выполняемых компьютерных операций при определении скоростных свойств алгоритма. <...> Целью исследования является построение и 2 [ оценка быстродействия алгоритма дихотомического поиска множителя для целых десятичных чисел произвольного размера в байтовом представлении. <...> Ниже представлены функции: ByteBits( ) — для двоичного представления цифр числа, ByteBitPrint( ) — для печаISSN 2305-5626. <...> В дальнейшем для реализации поиска дихотомического множителя потребуется функция SingleMultiply( ), выполняющая умножение целого числа b произвольного размера на одноразрядное целое число e. <...> В функции SingleMultiply( ) параметр int nb1 содержит количество байтов в числе b без учета знака числа. <...> Поскольку в результате умножения количество цифр в итоге может быть на единицу больше, то в начале функции предполагается, что c[nb1] = 0, пока нет переноса старшей цифры. <...> = 4 min Если на старшей цифре результата происходит перенос, то выполняется одна операция в инструкции return nb1 + 1. <...> Такое вычитание выполняет функция SingleSubtract( ), в которой параметр unsigned char*s является указателем на массив побайтового результата вычитания, параметр unsigned char* u задает массив уменьшаемого, параметр unsigned char* v определяет массив вычитаемого, параметр int nv определяет количество байтов в выровненных по длине массивах u и v без учета знаков чисел: int inline SingleSubtract( unsigned char* s, unsigned char* u, unsigned char* v, int nv ) { unsigned char tranzit = 0; // для занимаемой единицы ISSN 2305-5626. <...> На каждой итерации выполняются одна операция проверки условия i < nv и две операции приращения i++. <...> Оценка общего количества операций в функции SingleSubtract( ) может быть минимальной или максимальной в зависимости от количества занимаемых единиц при вычитании и от знака результата: ISSN 2305-5626. <...> Дихотомический <...>
** - вычисляется автоматически, возможны погрешности

Похожие документы: