
Абстрактная и компьютерная алгебра 4.ppt
- Количество слайдов: 38
Абстрактная и компьютерная алгебра (курс лекций) Оленев Александр Анатольевич olenevalexandr@gmail. com СГПИ кафедра математики и информатики
• Компьютер должен работать, а человек - думать СГПИ кафедра математики и информатики
Основы арифметических вычислений 1. Целочисленная арифметика 2. Полиномиальная арифметика СГПИ кафедра математики и информатики
Позиционные (сокращенные) системы счисления • Правила записи чисел называются системой счисления, а символы, используемые для записи чисел – цифрами. Позиционной системой счисления называется такая система счисления, в которой вес, вносимый отдельной цифрой в значение числа, зависит от ее позиции в записи числа. Количество цифр, принятых для записи чисел в позиционной системе счисления, называется основанием системы счисления. • Наиболее распространены позиционные системы счисления с основаниями 10, 2, 8, 16. СГПИ кафедра математики и информатики
Представление целых чисел • Целые числа представляются в позиционной системе счисления последовательностью цифр. Для любой позиционной системы счисления с основанием b справедлива следующая связь между записью целого положительного числа и его значением • b, • где – цифры, а b – основание системы счисления. СГПИ кафедра математики и информатики
Представление вещественных чисел • Для вещественных чисел взаимозависимость записи чисел и их значений приобретает следующий вид • где – цифры, а b – основание системы счисления. СГПИ кафедра математики и информатики
Целые числа многократной точности • Числа, которые хранятся в одном слове, будем называть числами однократной точности. Чтобы совершать операции над целыми числами большей величины необходимо организовать обработку чисел так называемой многократной точности (произвольной, неограниченной). При этом каждое число многократной точности состоит из нескольких чисел однократной точности. Если арифметические операции над числами однократной точности в компьютере реализованы с помощью электронных схем или встроенными программами, то арифметику многократной точности необходимо реализовать программным путем. • Число многократной точности можно рассматривать как число в системе счисления по основанию b , где b максимальное число однократной точности или близкое к нему число. СГПИ кафедра математики и информатики
Смешанные системы счисления • Разновидностью позиционных систем счисления являются смешанные системы счисления или, точнее говоря, позиционные системы со смешанными основаниями. Их можно определить следующим образом СГПИ кафедра математики и информатики
• Одна из наиболее важных систем со смешанными основаниями – это факториальная система счисления. • Распространена в приложениях и система счисления со смешанными основаниями, в которой в качестве оснований используются числа Фибоначчи. • Модулярное представление целых чисел основывается на известной Китайской теореме об остатках, которая утверждает, что всякое целое число представимо единственным образом как набор цифр, остатков от деления на числа , которые попарно взаимно просты, т. е. • нод при j ≠k. • Модулярные алгоритмы, основанные на такой системе счисления, широко распространены в системах компьютерной алгебры. Их преимуществом является высокая эффективность выполнения операций сложения, вычитания и умножения чисел. СГПИ кафедра математики и информатики
Постулаты • 1) Объекты вычислений в целочисленной арифметике–короткие и длинные неотрицательные целые числа. • 2) Система счисления(СС) –позиционная, с постоянным основанием. • 3)Знак числа и позиция точки (разделителя целой и дробной частей) хранятся и обрабатываются отдельно. • 4)Структура данных для представления объектов вычислений в целочисленной арифметике–список(i-я ячейка содержит коэффициент di при i-й степени основания системы счисления. B). • • Замечание. Идентификатор основания СС (B) –BASE. СГПИ кафедра математики и информатики
Выбор основания СС(критерии) : • 1) Основание должно подходить под один из базовых типов данных языка реализацииа рифметических вычислений. • 2) Основание должно быть как можно больше, чтобы уменьшить размер представления длинных чисел и, соответственно, увеличить скорость выполнения арифметических операций над ними. • 3)Основание должно быть достаточно малого размера, чтобы все операции с коэффициентами использовали только базовый тип данных. • 4)Выбор значения BASE равным степени 10 удобен для организации вывода информации и отладки программ. • 5)Выбор значения BASE равным степени 2 обеспечивает быстрое выполнение операций на низком уровне. СГПИ кафедра математики и информатики
Выбор основания СС (результаты) : • Разумный компромисс: • #define BASE 10000 – Пример. Представление числа 20 ! – ( 20 ! = 243 2902 0081 7664 0000 ) – D = 0 + 7664 * BASE + 81 * BASE 2+ 2902 * BASE 3+ 243 * BASE 4 – Замечание. Далее для краткости изложения • Используется десятичная система счисления(BASE =10). СГПИ кафедра математики и информатики
Целочисленная арифметика • Объявление класса (длинное целое + простейшие операции) : • Конструкторы и деструктор объектов класса: • Простейшие операции над объектами класса: Операция обнуления числа: Оператор вычисления значения числа в «обычном виде» (полезен при отладке, когда BASE=10 ичисланебольшие): • Оператор присваивания: СГПИ кафедра математики и информатики
Схемы выполнения аддитивных операций: • • Схема сложения. Общие правила: Складываем цифры слева направо (цифры хранятся в обратном порядке). Если зафиксировано переполнение (т. е. сумма цифр больше основания системы счисления), то формируем перенос в следующий разряд. • • • Особые случаи: Нет. Схема вычитания. Общие правила: Просматривая цифры слева направо(цифры хранятся в обратном порядке), вычитаем цифру вычитаемого из цифры уменьшаемого. цифра вычитаемого больше цифры уменьшаемого, то формируем заимствование из Если следующего (старшего) разряда. • • Особые случаи: вычитаемое больше по размеру, чем уменьшаемое, то выходим по ошибке (т. к. все Если числа, включая результат, ТОЛЬКО положительны). длины чисел одинаковы, но значение вычитаемого больше значения уменьшаемого, Если то последнее заимствование останется неиспользованным. Результат будет дополнением до BASEB. Size. СГПИ кафедра математики и информатики
Сложность аддитивных операций: СГПИ кафедра математики и информатики
Схемы выполнения операции умножения-1 : <длинное_целое>= <длинное_целое>* <длинное_целое>. Общие правила: Обнуляем значение произведения(C = 0). Обнуляем указатель текущего перемножаемого разряда длинного целого(i=0). Вычисляем временный результат–умножаем i-ую цифру множимого(A) на множитель(B) и прибавляемего к C, начиная с i-ой позиции. • В обычном( «школьном» ) алгоритме умножения «столбиком» последовательно перемножаем цифры сомножителей, сохраняя временные результаты. Затем все ранее полученные временные результаты суммируем с учётом разрядов. значение очередного вычисленного разряда C оказалось больше Если BASE, то выполняем перенос. разряды множимого незакончились, то инкрементируем указатель(i++) Если и продолжаем умножение; в противном случае–умножение выполнено. • Особые случаи: Нет. СГПИ кафедра математики и информатики
Сложность операции умножения: СГПИ кафедра математики и информатики
Схема выполнения операции деления: СГПИ кафедра математики и информатики
Общая схема операции деления: Цель операции деления (длинного) целого A на(длинное) целое B–определение двух(длинных) целых Q и. R, которые удовлетворяют свойству делимости с остатком: A = B * Q + R , 0 ≤R ≤B Пусть A = (a 0, a 1, a 2, …an+m-1) B = (b 0, b 1, b 2, …bn-1) Общие правила: каждом(i-м) шаге (кроме первого) необходимо выполнить деление (n+1)На разрядной части делителя на n-разрядныйделитель: • угадать i-юцифру частного. Q[i]; • несоздавая временных чисел, вычесть «сдвинутое» произведение B * Q[i] из A. (При этом сдвиг B относительно A на каждом шаге уменьшается). • Проблема: Каким образом обеспечить угадывание? СГПИ кафедра математики и информатики
Пример. Деление длинных целых чисел. СГПИ кафедра математики и информатики
Правило угадывания цифр частного-1 СГПИ кафедра математики и информатики
Правило угадывания цифр частного-2 СГПИ кафедра математики и информатики
Общая схема операции деления: (исправленная и дополненная) СГПИ кафедра математики и информатики
Сложность операции деления: СГПИ кафедра математики и информатики
Полиномиальная арифметика Постулаты СГПИ кафедра математики и информатики
Списочные представления полиномов-1 СГПИ кафедра математики и информатики
Списочные представления полиномов-2 СГПИ кафедра математики и информатики
Списочные представления полиномов-3 СГПИ кафедра математики и информатики
Списочные представления полиномов-4 СГПИ кафедра математики и информатики
Списочные представления полиномов-5 СГПИ кафедра математики и информатики
Списочные представления полиномов-6 СГПИ кафедра математики и информатики
Сложность выполнения операций-1 СГПИ кафедра математики и информатики
Сложность выполнения операций– 2 СГПИ кафедра математики и информатики
Сложность выполнения операций– 3 СГПИ кафедра математики и информатики
Сложность выполнения операций– 4 СГПИ кафедра математики и информатики
Сложность выполнения операций– 5 СГПИ кафедра математики и информатики
Сложность выполнения операций– 6 СГПИ кафедра математики и информатики
Спасибо за внимание ! • Вопросы ? СГПИ кафедра математики и информатики
Абстрактная и компьютерная алгебра 4.ppt