русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Вычисление полиномов


Дата добавления: 2015-06-12; просмотров: 3538; Нарушение авторских прав


Полином = многочлен. Бинарный метод.Для возведения за минимальное количество операций, запишем в двоичной СС, единицу заменим на SX, а ноль на X. Крайнюю левую пару SX вычеркнем. Получим правило, где S – возведение в степень 2, а X – умножение на X.

Метод множителей.Если , где p – наименьший простой множитель числа n и q>1, то для вычисления мы можем сначала вычислить , а затем возвести это число в степень . В случае, если простое, можно сначала вычислить , а затем результат умножить на .Многократное применение этих правил даёт процедуру вычисления для любого данного . Степенное дерево

Путь от корня к узлу определяет последовательность вычислений.

Аддитивная сложность.Аддитивной цепочкой для n называется всякая последовательность целых чисел обладающих тем свойством, что при некоторых для всех .Заметим, что всегда равно 2, а равно 2, 3 или 4.Наименьшее значение длины аддитивных цепочек для обозначается через и называется аддитивной сложностью или высотой числа. Схема Горнера

Весь процесс требует умножений и сложений.

Обобщённая схема Горнера используется, когда требуется вычислить сразу полином и его производную.

Это удобно сделать, положив . Здесь и . Вычисление требует умножений и сложений, причём, нет необходимости хранить в памяти новые коэффициенты .


 

КА 5. Нахождение НОД от одной переменной

Пусть и полиномы, и мы хотим вычислить их НОД. «наивный» метод основан на алгоритме Евклида. Такие действия над полиномами с рациональными коэффициентами требуют неоднократного вычисления НОД целых чисел, и целые числа, фигурирующие в этих вычислениях, не всегда являются маленькими.

Вычисления НОДа наивным методом наводят на мысль о модулярных методах, в которых нет возможности разбухания промежуточных выражений, поскольку целые числа ограничены (например, числа по модулю 5 ограничены четырьмя).



Неравенство Ландау-Миньотта. Теорема. Пусть –делитель полинома , где –целые числа). Тогда . Следствие 1. Каждый коэффициент НОД полиномов , ограничен величиной сверху. Следствие 2. Каждый коэффициент НОД полиномов , ограничен величиной снизу.

Лемма 1. Если число не делит старший коэффициент полиномов и (в частности, может делить один из них, но не оба одновременно), то степень степени . Поскольку НОД является единственным полиномом этой степени, который делит и , и , то мы можем проверить корректность наших вычислений НОД: если результат имеет ту же степень, что и (где удовлетворяет предположению следствия), и если он делит и , то он совпадает с НОД (с точностью до целого множителя).

Лемма 2.Пусть . Если число удовлетворяет условию следствия и, если не делит , то . Если , то мы говорим, что редукция задачи хорошая, или что – число с хорошей редукцией. В противном случае мы говорим, что –число с плохой редукцией. Из этой леммы, в частности, следует, что существует только конечное число значений , таких, что степень отличается от степени : это те , которые делят НОД старших коэффициентов или делят результат, упоминающийся в лемме. Вычисление НОД.Очевидный метод вычисления нетривиального НОД – воспользоваться неравенством Ландау-Миньотта, которое позволяет определить такое число , что все коэффициенты ограничены , и производить вычисления по модулю простого числа, большего, чем .

M := граница_Ландау_Миньотта(a,b);

цикл до бесконечности

p := найти_большое_простое(2M);

еслистепень_остатка(p, a) истепень_остатка(p, b) то

c := модулярный_НОД(a, b, p);

если делит(c, a) и делит(c, b) то вернутьc;

Алгоритм «степень_остатка» проверяет, что редукция по модулю не меняет степень, т.е. не делит старший коэффициент полинома. Все остальные алгоритмы и так понятно что делают.

Недостаток данного метода в том, что он требует многочисленных вычислений по модулю , которое может быть довольно большим. Поэтому обычно применяется метод, использующий несколько маленьких простых чисел и китайскую теорему об остатках. Если мы вычислим и , где –требуемый НОД, а – два простых числа, то эта теорема позволяет нам вычислить .



<== предыдущая лекция | следующая лекция ==>
Горячие цвета | Понятия алгоритма и программы. Свойства алгоритмов. Составление алгоритмов различной структуры.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.