Вычисления результанта 2-ч полиномов
Министерство образования и
науки РФ
ФБГОУ ВПО «Сочинский государственный
университет»
Факультет экономики и процессов управления
Кафедра общей математики и информатики
По дисциплине: элементы абстрактной и компьютерной алгебры
Тема: вычисление результата 2-х полиномов
Группа:12-ИНФ
Содержание
1. Введение
3
2. Полиномиальные
алгоритмы
5
2.1 Алгоритм вычисления ad mod m
5
2.2 Дихотомический
алгоритм возведения в степень
2.3 Алгоритм Евклида
2.4 Алгоритм решения
уравнения ax + by = 1
2.5 Полиномы Чебышева
3. Полиномиальная
арифметика
3.1. Алгоритм нахождения делителей многочлена f(x) в кольце Fp[x] 13
3.2. Произведение и возведение в степень многочленов, заданных
массивами
14
3.3. Небольшие оптимизации для
произведения многочленов
17
Список литературы
- Введение
В математике, многочлены
или полиномы от одной переменной — функции
вида , где c фиксированные
коэффициенты, а x — переменная. Многочлены
составляют один из важнейших классов
элементарных функций.
Изучение полиномиальных
уравнений и их решений составляло едва
ли не главный объект «классической алгебры».
С изучением многочленов связан целый
ряд преобразований в математике: введение
в рассмотрение нуля, отрицательных, а
затем и комплексных чисел, а также появление
теории групп как раздела математики и
выделение классов специальных функций
в анализе. Техническая простота вычислений,
связанных с многочленами, по сравнению
с более сложными классами функций, а также
тот факт, что множество многочленов плотно
в пространстве непрерывных функций на
компактных подмножествах евклидова пространства
(см. аппроксимационная теорема Вейерштрасса),
способствовали развитию методов разложения
в ряды и полиномиальной интерполяции
в математическом анализе. Многочлены
также играют ключевую роль в алгебраической
геометрии, объектом которой являются
множества, определённые как решения систем
многочленов. Особые свойства преобразования
коэффициентов при умножении многочленов
используются в алгебраической геометрии,
алгебре, теории узлов и других разделах
математики для кодирования, или выражения
многочленами свойств различных объектов.
Весьма удобным является представление
двоичных чисел в виде полиномов степени
n -1, где n – количество разрядов числа.
Идея представления числа в
виде полинома состоит в следующем – основание
системы счисления заменяется некоторой
фиктивной переменной, например x. Степень
этой переменной будет соответствовать
номеру разряда числа, а коэффициент значению
самого разряда. Рассмотрим пример: Запишем
двоичное число и его разложение в виде
степеней двойки (аналогично переводу
в десятичную систему счисления):
. Теперь, заменим двойку на фиктивную переменную x, при этом получим выражение:
Исключив элементы с нулевым коэффициентом,
получим полиномиальное представление
числа: .
- Полиномиальные алгоритмы
Четыре приведённых ниже алгоритма относятся к разряду так называемых
полиномиальных алгоритмов. Это название носят алгоритмы, сложность которых оценивается сверху степенным образом в зависимости от длины записи входящих чисел. Если наибольшее из чисел, подаваемых на вход алгоритма, не превосходит m, то сложность алгоритмов этого типа оценивается величиной O(ln cm), где c – некоторая абсолютная постоянная. Во всех приведённых примерах с =1.Следующий алгоритм вычисляет admod m. При этом, конечно, предполагается, что натуральные числа a и d не превосходят по величине m.
2.1 Алгоритм вычисления ad mod m
1. Представим d в двоичной системе счисления d = d0
2r+.+dr-12+dr, где di, цифры в двоичном представлении, равны 0 или 1,
d0 = 1.
2. Положим a0 = a и затем для i = 1,.,r вычислим ai º a2i-1adi (mod m).
3. ar есть искомый вычет admod m.
Справедливость этого алгоритма вытекает из сравнения
ai
º a2i-1ad02^i+.+di
(mod m), легко доказываемого индукцией по i.
Так как каждое вычисление на шаге 2 требует не более трёх умножений по модулю m и этот шаг выполняется r £ log2 m раз, то
сложность алгоритма может быть оценена величиной O(ln m).
2.2 Дихотомический алгоритм возведения в степень.
В общем виде дихотомический алгоритм позволяет вычислить n–ю степень в моноиде. Будучи применён к множеству целых чисел с операцией сложения, этот метод позволяет умножать два целых числа и более известен как египетское умножение. Классический алгоритм возведения в степень посредством последовательного умножения характерен, главным образом, своей неэффективностью в обычных обстоятельствах – его время работы линейным образом зависит от показателя степени.
Возьмём моноид М с операцией умножения и рассмотрим некоторый элемент x0 из М, а также произвольное натуральное число n0. Для того, чтобы вычислит, представим n0 в двоичной системе счисления:
n0 = bt2t + bt – 12t – 1 + . + b121 + b020, предполагая, что n0 содержит (t +1) двоичных цифр (т.е. что bt ¹ 0 и bt + 1 = 0). В этих условиях вычисляемое выражение может быть записано:
Или же
Если задана последовательность (xi)0 £ i £ t, первый элемент которой есть x0 и xi для iÎ [1,t] определено соотношением xi = xi – 12, то можно записать = P{xi | 0£ i £ t, bi ¹ 0}. Чтобы завершить построение алгоритма и иметь возможность получить значение предыдущего произведения, необходимо вычислить биты bi числа n0. Для последовательности (ni) 0 £ i £ t+1 (с начальным элементом n0), определённой соотношением ni = [ni–1/2] для любого i Î [1, t + 1], бит bi равен нулю, если ni чётно, и равен единице в противном случае. Первое значение индекса i, для которого ni равно нулю, есть t + 1. Ясно, что число итераций, необходимых для выполнения алгоритма, зависит толькоот показателя n.
2t £ n £ 2t + 1 или t £ log2n < t + 1.
Первая часть этого свойства может быть выражена следующим образом: [ + 1] = 0 и [n/2t]¹ 0, что позволяет точно определить число совершаемых делений n, равное числу итераций алгоритма при заданном значении n. Очевидно, нужно совершить t + 1 итераций, чтобы выполнить алгоритм, т. е. [log2n] + 1 итераций. Следовательно, трудоёмкость алгоритма есть O (log n). Третий алгоритм – это классический алгоритм Евклида вычисления наибольшего общего делителя целых чисел. Мы предполагаем заданными два натуральных числа a и b и вычисляем их наибольший общий делитель (a,b).
- Алгоритм Евклида
1. Вычислим r – остаток от деления числа a на b, a = bq+r, 0 £ r < b.
2. Если r = 0, то b есть искомое число.
3. Если r ¹ 0, то заменим пару чисел (a,b) парой (b,r) и перейдём к шагу 1.
Не останавливаясь на объяснении, почему алгоритм действительно находит (a,b), докажем некоторую оценку его сложности.
Теорема 1. При вычислении наибольшего общего делителя (a,b) с помощью алгоритма Евклида будет выполнено не более 5p операций деления с остатком, где p есть количество цифр в десятичной записи меньшего из чисел a и b.
Доказательство. Положим r0 = a > b и определим r1,r2,.,rn -последовательность делителей, появляющихся в процессе выполнения шага 1
алгоритма Евклида. Тогда r1 = b,., 0 £ ri+1 < ri, i = 0,1,.,n - 1.
Пусть также u0 = 1, u1 = 1, uk+1 = uk+uk-1, k ³ 1, - последовательность Фибоначчи. Индукцией по i от i = n - 1 до i = 0 легко доказывается неравенство ri+1 ³ un-i. А так как un ³ 10(n-1)/5, то имеем неравенства 10p > b = r1 ³
un ³ 10(n-1)/5 и n < 5p+1.
Немного подправив алгоритм Евклида, можно достаточно быстро решать сравнения ax º 1 (mod m) при условии, что (a,b) = 1. Эта задача равносильна поиску целых решений уравнения ax + by = 1.
2.4 Алгоритм решения уравнения ax + by = 1
Определим матрицу E =
- Вычислим r – остаток от деления числа a на b, a = bq + r, 0 £ r < b.
- Если r = 0, то второй столбец матрицы Е даёт вектор (x y) решений уравнения.
- Если r ¹ 0, то заменим матрицу Е матрицей
- Заменим пару чисел (a,b) парой (b,r) и перейдём к шагу 1.
Если обозначить через Еk матрицу Е, возникающую в процессе работы алгоритма перед шагом 2 после k делений с остатком (шаг 1), то в обозначениях из доказательства теоремы 1 в этот момент выполняется векторное равенство (a,b)*Ek = (rk-1,rk). Его легко доказать индукцией по k. Поскольку числа a и b взаимно просты, имеем rn = 1, и это доказывает, что алгоритм действительно даёт решение уравнения ax + by = 1. Буквой n мы
обозначили количество делений с остатком, которое в точности такое же, как и в алгоритме Евклида.
Полиномиальные алгоритмы в теории чисел – большая редкость. Да и оценки сложности алгоритмов чаще всего опираются на какие-либо не доказанные, но правдоподобные гипотезы, обычно относящиеся к аналитической теории чисел. Для некоторых задач эффективные алгоритмы вообще не известны. Иногда в таких случаях всё же можно предложить последовательность действий, которая, «если повезёт», быстро приводит к требуемому результату. Существует класс так называемых вероятностных алгоритмов, которые дают правильный результат, но имеют вероятностную оценку времени работы. Обычно работа этих алгоритмов зависит от одного или нескольких параметров. В худшем случае они работают достаточно долго. Но удачный выбор параметра определяет быстрое завершение работы. Такие алгоритмы, если множество «хороших» значений параметров велико,
на практике работают достаточно эффективно, хотя и не имеют хороших оценок сложности.
2.5 Полиномы Чебышева
Допустим, задана
функция y(x), это означает, что любому допустимому
значению х сопоставлено значение у. Но
иногда оказывается, что найти это значение
очень трудно. Например, у(х) может быть
определено как решение сложной задачи,
в которой х играет роль параметра или
у(х) измеряется в дорогостоящем эксперименте.
В этом случае можно вычислить небольшую
таблицу значений функции, но прямое нахождение
этой функции при большом числе значений
аргумента будет практически невозможно.
Функция у(х) может существовать в каких-нибудь
физико-технических или математических
расчётах, где её необходимо будет многократно
вычислять. В этой ситуации удобно заменить
функцию у(х) приближённой формулой, то
есть подобрать некоторую функцию j(х),
которая приближается в некотором смысле
к у(х) и просто вычисляется. Затем при
всех значениях аргумента полагать, что
у(х) j(х). Основная часть классического
численного анализа основывается на приближении
многочленами, потому как с ними легче
работать. Однако для большинства целей
используются другие классы функций. Выбрав
значимые точки и класс приближающих функций,
нам необходимо ещё выбрать одну определённую
функцию из этого класса посредством какого-то
критерия — некоторой меры приближения
или «равенства». До того как начать вычисления,
мы должны решить также, какую точность
нам надо в ответе и какой критерий мы
выбираем для измерения этой точности.
Всё изложенное выше можно сформулировать
в виде четырёх вопросов:
- Какие значимые точки мы будем использовать?
- Какой класс приближающих функций будет нами использован?
- Какой критерий согласия «равенства» мы применим?
- Какая точность нам необходима?
Существуют три группы функций, которые широко применяемых в численном анализе. Первая группа включает в себя линейные комбинации функций 1, х , х 2 , …, х n , что совпадает с классом всех многочленов степени n (или меньше). Второй класс - включает в себя функции cos a i x , sin a i x . Этот класс имеет непосредственное отношение к рядам Фурье и интегралу Фурье. Третья группа образована функциями e - az . Эти функции часто встречаются в реальных ситуациях, к ним, например, часто приводят задачи накопления и распада.
Что касается критерия
согласия или «равенства», то классическим
критерием согласия является «точное
совпадение в значимых - узловых точках».
Этот критерий обладает преимуществами
простоты теории и выполнения вычислений,
но он также имеет неудобство из-за игнорирования
шума (погрешности, возникающей при измерении
или вычислении значений в значимых (узловых)
точках). Другой достаточно хороший критерий
— есть «наименьшие квадраты». Это означает,
что сумма квадратов отклонений в узловых
точках должна быть наименьшей возможной
или, другими словами, приведена к минимуму.
Этот критерий использует неточную информацию,
чтобы получить наименьшее количество
шума. Третий критерий напрямую связан
с именем Чебышева. Основная идея его заключается
в том, чтобы привести максимальное отклонение
к минимуму. Конечно, могут быть возможны
и другие критерии. Более точно ответить
на поставленные нами четыре вопроса можно
лишь исходя из условий и цели каждой задачи
в отдельности.
Критерии согласия
данного метода — минимизация максимальной
ошибки Полиномы Чебышева определяются
следующим образом:
T n ( x )= cos ( n Ч arccos ( x ))
Например:
T 0 ( x )= cos (0)=1,
T 1 ( x )= cos ( q )= x ,
T 2 (x)= cos (2 q )=cos 2 ( q )-sin 2 ( q )=2x 2 -1
Можно было бы и дальше использовать тригонометрические соотношения для нахождения полиномов Чебышева любого порядка, но будет лучше установить для них рекуррентное соотношение, связывающее
T n +1 ( x ), T n ( x ) и T n -1 ( x ):
T n+1 (x)= cos (n q + q )= cos (n q ) cos ( q )-sin(n q )sin( q ),
T n-1 (x)= cos (n q - q )= cos (n q ) cos ( q )-sin(n q )sin( q )
Складывая эти неравенства, получим:
T n +1 ( x )+ T n -1 ( x )=2 cos (
n q ) cos ( q )=2 xT n ( x );
T n+1 (x)=2xT n (x)-T n-1 (x)
Применяя полученные
формулы можно найти любой полином Чебышева.
Например, Т 3 ( x )=2 xT 2 ( x )- T 1 ( x ). Подставляя
значения T 2 ( х ) и Т 1 ( х ) имеем
Т 3 ( х )=2х(2х 2 -1)-х=4х 3 -3х. Графически
первые 10 полиномов Чебышева изображены
ниже. Последующие полиномы по-прежнему
колеблются между +1 и -1, причём период
колебания уменьшаются с ростом порядка
полинома. Преобразования q=arccos(x) можно
рассмотреть как проекцию пересечений
полукруга с множеством прямых, имеющих
углы равные между собой. Таким образом,
множество точек x j , на котором
система чебышевских многочленов T n ( x ) ортогональна,
есть: ( j =0, 1, 2, …, N -1). Так как T n ( x ) есть, по
существу, cos ( n q ), то они являются равноколеблющимися
функциями, и так как они многочлены, то
обладают всеми свойствами, которые имеют
ортогональные многочлены
Чебышев доказал, что из всех многочленов
Рn (x) степени
n старшим коэффициентом 1, у многочлена
точная верхняя грань абсолютных значений
на интервале -1 Ј x Ј 1 наименьшая. Так как
верхняя грань T n (x )=1, указанная
верхняя грань равна.
- Полиномиальная арифметика
Рассмотрим вероятностный алгоритм, позволяющий эффективно находить решения полиномиальных сравнений по простому модулю. Пусть p – простое число, которое предполагается большим, и f(x)ÎZ[x] – многочлен, степень которого предполагается ограниченной. Задача состоит в отыскании решений сравнения f(x) º 0 (mod p). (1)
Например, речь может идти о решении квадратичных сравнений, если степень многочлена f(x) равна 2. Другими словами, мы должны отыскать в
поле Fp = Z/pZ все элементы, удовлетворяющие уравнению f(x) = 0.
Согласно малой теореме Ферма, все элементы поля Fp являются однократными корнями многочлена xp - x. Поэтому, вычислив наибольший общий делитель d(x) = (xp - x, f(x)), мы найдём многочлен d(x), множество корней которого в поле Fp совпадает с множеством корней многочлена f(x), причём все эти корни однократны. Если окажется, что многочлен d(x) имеет нулевую степень, т. е. лежит в поле Fp, это будет означать, что сравнение (1) не имеет решений.
Для вычисления многочлена d(x) удобно сначала вычислить многочлен
c(x)ºxp (mod f(x)), пользуясь алгоритмом, подобным описанному выше алгоритму возведения в степень (напомним, что число p предполагается большим). А затем с помощью аналога алгоритма Евклида вычислить d(x) = (c(x) – x, f(x)). Всё это выполняется за полиномиальное количество арифметических операций.
Таким образом, обсуждая далее задачу нахождения решений сравнения (1) мы можем предполагать, что в кольце многочленов Fp[x] справедливо равенство f(x) = (x – a1)*.*(x – an), aiÎFp, ai ¹ aj.
3.1 Алгоритм нахождения делителей многочлена f(x) в кольце Fp[x]
1. Выберем каким-либо способом элемент ( (Fp.
2. Вычислим наибольший общий делитель
g(x) = ( f(x), (x + ()(p-1)/2 – 1).
3. Если многочлен g(x) окажется собственным делителем f(x), то многочлен f(x) распадается на два множителя и с каждым из них независимо нужно будет проделать все операции, предписываемые настоящим алгоритмом для многочлена f(x).
4. Если окажется, что g(x) = 1 или g(x) = f(x), следует перейти к шагу 1 и,
выбрав новое значение (продолжить выполнение алгоритма.
Количество операций на шаге 2 оценивается величиной O(ln p), если
вычисления проводить так, как это указывалось выше при нахождении d(x). Выясним теперь, сколь долго придётся выбирать числа (, пока на шаге 2 не будет найден собственный делитель f(x).
Количество решений уравнения (t + a1)(p – 1)/2 = (t + a2)(p – 1)/2 в
поле Fp не превосходит (p-3)/2. Это означает, что подмножество D ( Fp,
состоящее из элементов (удовлетворяющих условиям
(( + a1)(p – 1)/ 2 ( (( + a2)(p – 1)/ 2, ( ( -a1, ( ( -a2, состоит не менее чем (p – 1)/2 из элементов. Учитывая теперь, что каждый ненулевой элемент b(Fp удовлетворяет одному из равенств b(p – 1)/2 = 1, либо b(p – 1)/2 = –1, заключаем, что для ( ( D одно из чисел a1, a2 будет корнем многочлена (x + () (p – 1)/2 – 1, а другое – нет. Для таких элементов ( многочлен, определённый на шаге 2 алгоритма, будет собственным делителем многочлена f(x).
Итак, существует не менее (p –1)/2 «удачных» выборов элемента (, при
которых на шаге 2 алгоритма многочлен f(x) распадается на два собственных множителя. Следовательно, при «случайном» выборе элемента ( ( Fp, вероятность того, что многочлен не разложится на множители после k
повторений шагов алгоритма 1-4, не превосходит 2-k. Вероятность с ростом k убывает очень быстро. И действительно, на практике этот алгоритм работает достаточно эффективно.
Заметим, что при оценке вероятности мы использовали только два корня
многочлена f(x). При n > 2 эта вероятность, конечно, ещё меньше. Более
тонкий анализ с использованием оценок А. Вейля для сумм характеров
показывает, что вероятность для многочлена f(x) не распасться на множители при однократном проходе шагов алгоритма 1-4 не превосходит 2-n + O(p-1/2). Здесь постоянная в O(.) зависит от n. В настоящее время известно элементарное доказательство оценки А. Вейля.
Если в сравнении (1) заменить простой модуль p составным модулем m, то
задача нахождения решений соответствующего сравнения становится намного более сложной. Известные алгоритмы её решения основаны на сведении сравнения к совокупности сравнений (1) по простым модулям – делителям m, и, следовательно, они требуют разложения числа m на простые сомножители, что, как уже указывалось, является достаточно трудоёмкой задачей.
3.2 Произведение и возведение в степень многочленов, заданных массивами
Условимся представлять многочлены массивами, индексированными, начиная с 0, в которых элемент с индексом i означает коэффициент многочлена степени I type
Polynome=array[1..Nmax] of Ring_Element;
Следующий алгоритм даёт функцию умножения двух многочленов и , где многочлен степени (который даёт результат в конце алгоритма) должен быть предварительно инициализирован нулём.
for i:= 0 to degP do
for j:= 0 to degQ do
R[i+j]:=R[i+j]+P[i](Q[i];
Изучая предыдущий алгоритм, устанавливаем, что его сложность как по числу перемножений, так и сложений, равна произведению высот двух многочленов: (deg P + 1)(degQ + 1), но в этом алгоритме, который не учитывает случай нулевых коэффициентов, можно рассматривать высоту многочлена как число всех коэффициентов. Значит, возможно улучшить предыдущий алгоритм, исключив все ненужные перемножения:
for i:= 0 to degP do
if P[i] ( 0 then
for j:= 0 to degQ do
if Q[j] ( 0 then
R[i+j]:=R[i+j]+P[i]Q[i];
Очень просто вычислить сложность алгоритма возведения в степень последовательными умножениями, если заметить, что когда P – многочлен степени d, то Pi – многочлен степени id. Если обозначить Cmul(n) сложность вычисления Pn, то рекуррентное соотношение
Cmul(i + 1) = Cmul(i) + (d+1)(id +1)
Что касается возведения в степень с помощью дихотомии (т.е. повторяющимися возведениями в квадрат), вычисления несколько сложнее: зная, вычисляем с мультипликативной сложностью.
Предварительное заключение, которое можно вывести из предыдущих
вычислений, складывается в пользу дихотомического возведения в степень: если n есть степень двойки (гипотеза ad hoc), этот алгоритм ещё выдерживает конкуренцию, даже если эта победа гораздо скромнее в данном контексте (n2d2/3 против n2d2/2), чем когда работаем в Z/pZ (2log2 n против n).
Но мы не учли корректирующие перемножения, которые должны быть выполнены, когда показатель не является степенью двойки. Если n = 2l+1–1, нужно добавить к последовательным возведениям в квадрат перемножения всех полученных многочленов. Умножение многочлена степени (2i-1)d на многочлен степени 2id вносит свой вклад из
((2i – 1)d + 1)( 2i d+1) умножений, которые, будучи собранными по всем корректирующим вычислениям, дают дополнительную сложность.
Теперь можно заключить, что дихотомическое возведение в степень не
всегда является лучшим способом для вычисления степени многочлена с помощь перемножений многочленов. Число перемножений базисного кольца, которыенеобходимы, Csqr(n), — в действительности заключено между n2d2/3 и 2n2d2/3, тогда как простой алгоритм требует всегда n2d2/2 перемножений. В частности, если исходный многочлен имеет степень, большую или равную 4, возведение в степень наивным методом требует меньше перемножений в базисном кольце, чем бинарное возведение в степень, когда n имеет форму 2l – 1.
Можно довольно просто доказать, что если n имеет вид 2l +2l – 1 + c
(выражения, представляющие двоичное разложение n), то метод вычисления последовательными перемножениями лучше метода, использующего возведение в квадрат (этот последний метод требует корректирующего счёта ценой, по крайней мере, n2d2/9). Всё это доказывает, что наивный способ является лучшим для этого класса алгоритмов, по крайней мере, в половине случаев.
Действительно, МакКарти [3] доказал, что дихотомический алгоритм
возведения в степень оптимален среди алгоритмов, оперирующих повторными умножениями, если действуют с плотными многочленами (антоним к разреженным) по модулю m, или с целыми и при условии оптимизации возведения в квадрат для сокращения его сложности наполовину (в этом случае сложность действительно падает приблизительно до n2d2/6 + n2d2/3 = n2d2/2).
3.3 Небольшие оптимизации для произведений многочленов
В принципе вычисление произведения двух многочленов степеней n и m соответственно требует (n +1)( m +1) элементарных перемножений. Алгоритм оптимизации возведения в квадрат состоит просто в применении формулы квадрата суммы: что даёт n +1 умножений для первого члена и n( n +1)/2 – для второго, или в целом (n +1)( n +2)/2 умножений, что близко к половине предусмотренных умножений, когда n большое. Для произведения двух многочленов первой степени
P = aX + b и Q = cX + d достаточно легко находим формулы
U = ac, W = bd, V = (a + b)(c + d) и PQ=UX2 + (V – U – W)X +W, в которых появляются только три элементарных умножения, но четыре сложения. Можно рекурсивно применить этот процесс для умножения двух многочленов P и Q степени 2l – 1, представляя их в виде и применяя предыдущие формулы для вычисления PQ в зависимости от A, B, C и D, где каждое произведение AB, CD и (A + B)(C + D) вычисляется с помощью рекурсивного применения данного метода (это метод Карацубы). Всё это даёт мультипликативную сложность ((2l) и аддитивную сложность ((2l) такие, что:
((2l) = 3((2l – 1),…, ((2) = 3((1), ((1) = 1,
((2l) = 3((2l – 1) + 3(2l,…, ((2) = 3((1) + 6, ((1) = 1.
В этой последней формуле член 3(2l представляет собой число элементарных сложений, необходимых, чтобы сделать два сложения многочленов степени 2l – 1 – 1 (a + b и c + d) и два вычитания многочленов степени 2l – 1 (U –V – W). Суммируя каждое из этих выражений, находим для n, являющегося степенью двойки:
((n) = nlog3/log2 ( n1,585 и ((2) =7 nlog3/log2 – 6n.
К сожалению, этот принцип остаётся теоретическим, и на его основе нужно построить итерационный алгоритм, чтобы получить разумную эффективность (цена управления рекурсией очень велика).
Cписок литературы
1. Введение в криптографию под общей редакцией Ященко, М.: МЦНМО: «Черо», 1999.
2. Алгебраическая алгоритмика, Ноден П., Китте К., М.: «Мир», 1999.

- Вычисления статических моментов, центра масс и моментов инерции
- Вычислительная модель финансов предприятия
- Вычислительная практика
- Вычислительная сеть как составная часть защищенной компьютерной системы
- Вычислительные машины
- Вычислительные методы
- Вычислительные сети
- Вычисление площадей землепользований и контуров угодий
- Вычисление площадей эпюр с использованием численных методов (2)
- Вычисление площади сложной фигуры методом имитационного моделирования
- Вычисление площади фигуры методом трапеций на языке C#
- Вычисление термодинамических функций индивидуального вещества CO
- Вычисления в MS Excel
- Вычисления определенных интегралов методом Монте-Карло