Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[239]

Рис. 33.1 33.1: Работа процедуры EXTENDED-EUCLID на входе (99,78). EXTENDED-EUCLID(99,78) возвращает тройку (3,-11,14), так что НОД(99, 78) = 3 = 99 • (-11) + 78 • 14.

вычисление Euclid (-Ffc+i, Fk) включает ровно к - 1 рекурсивных вызовов и верхняя оценка достигается.

Поскольку Fk примерно равно tpk/\/5, где <р = (1 + у/5)/2 - так называемое «золотое сечение» см. (2.14)), число рекурсивных вызовов для Euclid (а, 6) (при а > 6 0) составляет O(lgb). (Более точную оценку см. в упр. 33.2-5.) Если процедура Euclid применяется к двум /3-битовым числам, то ей приходится выполнять 0(/3) арифметических операций, или 0(/33) битовых (считаем, что умножение и деление /3-битовых чисел требует 0(/32) битовых операций). На самом деле справедлива более сильная оценка 0(/32) на число битовых операций, выполняемых процедурой Euclid (задача 33-2).

Расширенный алгоритм Евклида.

Немного дополнив алгоритм Евклида, можно получать с его помощью коэффициенты хну, для которых

(теорема 33.2). Обратите внимание, что коэффициенты хну могут оказаться не только положительными, но и нулевыми или отрицательными. (Эти коэффициенты нужны для вычисления обратных элементов в кольце вычетов.)

Процедура Extended-Euclid получает на вход произвольную пару целых чисел и выдаёт на выходе тройку целых чисел (d, х,у), удовлетворяющих соотношению (33.18).

Extended-Euclid (a,b)

1if b=0

2then return (a,1,0)

3(d,x,y) \gets Extended-Euclid(b,a mod b)

4(d,x,y) \gets (d, y, x-\lfloor a/b\rfloor y)

5return (d,x,y)

Рисунок 33.1 иллюстрирует работу процедуры Extended-Euclid на входе (99, 78)

Если 6 = 0, процедура Extended-Euclid выдаёт значение d = а, а также значения х = 1 и у = 0, для которых d = а = ах + by.

Если 6/0, рекурсивный вызов позволяет найти числа (d!, х, у), таких, что d = НОД(Ь, a mod 6) и

Как мы знаем, d = d, так что осталось найти хну, для которых d = ахЛ-Ьу. Перепишем равенство (33.19): d = 6ж+ (a - [a/b\b)y! =

(33.19)


ау + Ь(х - [а/Ь\у). Таким образом, можно положить ж = у и у = х - [а/Ь\у.

Как и раньше, число рекурсивных вызовов при работе Extended-Euclid (а, Ь) составляет O(lgb). Упражнения 33.2-1

Объясните, каким образом из равенств (33.13)-(33.14) следует равенство (33.15). 33.2-2

Проследите за выполнением процедуры Extended-Euclid на входе (899,493) и найдите тройку (d,x,y). 33.2-3

Докажите, что для любых целых чисел а, к и п выполняется равенство gcd(a, п) = gcd(a + кп, п). 33.2-4

Перепишите процедуру Euclid, заменив рекурсию циклом и ограничившись фиксированным объёмом памяти (используя лишь фиксированное число целых переменных)

33.2-5

Пусть a > Ь 0. Покажите, что процедура Euclid (а, Ъ) выполняет не более l+logv Ь рекурсивных вызовов. Докажите более точную оценку 1 + logv(6/gcd(a, Ъ)).

33.2-6

Какой ответ даёт процедура Extended-Euclid (Д+1, Fk)l 33.2-7

Докажите, что если d \ a, d\bnd=ax-\- by, то d = gcd(a, b). 33.2-8

Распространим определение функции gcd на большее число аргументов, положив gcd (ао, а\,... , ап) = gcd(ao, gcd(ai,... , ап)). Покажите, что результат не зависит от порядка аргументов. Предложите алгоритм нахождения коэффициентов жо, х\,... , хп, для которых gcd(ao, а\,... , ап) = аоХо + а\Х\ + • • • + апхп,, выполняющий 0(п + lg(max8- си)) операций деления.

33.2-9

Назовём наименьшим общим кратным (least common multiple) целых чисел а\, а2, ,ап наименьшее положительное целое число, кратное каждому из них (обозначение 1ст(ао, а\,... , ап)). Укажите эффективный алгоритм, вычисляющий 1cm(ао, а\,... , ап) и использующий операцию поиска наибольшего общего делителя (двух чисел) в качестве подпрограммы.

33.2-10

Докажите, что числа щ, п2, п% и п4 попарно взаимно просты тогда и только тогда, когда gcd(raira2, П3П4) = gcd(raira3, п2пЛ = 1.

Покажите, что это утверждение можно обобщить, доказать утверждение такого типа: числа п\,п2,... ,пк попарно взаимно просты, если и только если gcd(ai,&i) = gcd(a2,&2) = ••• =


gcd(ai,6i) = 1, где t = \\gk], а числа аг- и Ьг- представляют собой произведения некоторых гаг-.

33.3. Модулярная арифметика

Арифметические операции по модулю га проводятся над числами 0,1,... , га - 1 так: если результат сложения, вычитания или умножения выходит за пределы указанного интервала, то он заменяется остатком при делении на га. Сложнее обстоит дело с делением. Чтобы разобраться в этом, напомним некоторые понятия теории групп.

Конечные группы.

Множество S с определённой на нём бинарной операцией © называется группой (group), если выполнены такие свойства:

1.Замкнутость (closure): а ф Ь £ S для любых a,b £ S.

2.Существование нейтрального элемента (identity): существует элемент е £ S, для которого ефа = афе = а для любого а £ S (такой элемент может быть только один, так как е = е е = е для любых двух элементов е и е с таким свойством).

3.Ассоциативность (associativity): а © (Ь © с) = (а ф Ъ) ф с для любых а, 6, с £ S*.

4.Существование обратных элементов (inverses): для всякого а £ S* найдётся единственный элемент Ь £ S, для которого а ф Ь = Ь ф а = е.

Например, целые числа с операцией сложения: образуют группу. В ней 0 служит нейтральным элементом, а обратным (по сложению) элементом к числу а является число ( - а). Группа называется абелевой (abelian), если выполнено свойство коммутативности: а ф Ь = Ь ф а для всех a,b £ S.

Группа называется конечной (finite), если число элементов в ней конечно.

Аддитивные и мультипликативные группы вычетов Можно построить две группы, элементами которых будут вычеты (остатки по модулю га, или классы эквивалентности по модулю га, см. раздел 33.1).

Мы складываем и умножаем вычеты по модулю га по правилам

Нп +п [Ь]п = [а+ Ь]п, [а]п -п [b]n = [ab]n.

Эти определения корректны, так как сумма (произведение) не изменится по модулю га, если изменить слагаемые (множители) на эквивалентные по модулю га.

Аддитивная группа вычетов по модулю га (additive group modulo п) содержит вычеты [0]„, [1]„,... , [га - 1]п; они складываются описанным выше образом; она обозначается (Zra,+ra).



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137] [стр.138] [стр.139] [стр.140] [стр.141] [стр.142] [стр.143] [стр.144] [стр.145] [стр.146] [стр.147] [стр.148] [стр.149] [стр.150] [стр.151] [стр.152] [стр.153] [стр.154] [стр.155] [стр.156] [стр.157] [стр.158] [стр.159] [стр.160] [стр.161] [стр.162] [стр.163] [стр.164] [стр.165] [стр.166] [стр.167] [стр.168] [стр.169] [стр.170] [стр.171] [стр.172] [стр.173] [стр.174] [стр.175] [стр.176] [стр.177] [стр.178] [стр.179] [стр.180] [стр.181] [стр.182] [стр.183] [стр.184] [стр.185] [стр.186] [стр.187] [стр.188] [стр.189] [стр.190] [стр.191] [стр.192] [стр.193] [стр.194] [стр.195] [стр.196] [стр.197] [стр.198] [стр.199] [стр.200] [стр.201] [стр.202] [стр.203] [стр.204] [стр.205] [стр.206] [стр.207] [стр.208] [стр.209] [стр.210] [стр.211] [стр.212] [стр.213] [стр.214] [стр.215] [стр.216] [стр.217] [стр.218] [стр.219] [стр.220] [стр.221] [стр.222] [стр.223] [стр.224] [стр.225] [стр.226] [стр.227] [стр.228] [стр.229] [стр.230] [стр.231] [стр.232] [стр.233] [стр.234] [стр.235] [стр.236] [стр.237] [стр.238] [стр.239] [стр.240] [стр.241] [стр.242] [стр.243] [стр.244] [стр.245] [стр.246] [стр.247] [стр.248] [стр.249] [стр.250] [стр.251] [стр.252] [стр.253] [стр.254] [стр.255] [стр.256] [стр.257] [стр.258] [стр.259] [стр.260] [стр.261] [стр.262] [стр.263] [стр.264] [стр.265] [стр.266] [стр.267] [стр.268] [стр.269] [стр.270] [стр.271] [стр.272] [стр.273] [стр.274] [стр.275] [стр.276] [стр.277] [стр.278] [стр.279] [стр.280] [стр.281] [стр.282] [стр.283] [стр.284] [стр.285] [стр.286] [стр.287] [стр.288] [стр.289] [стр.290] [стр.291] [стр.292] [стр.293] [стр.294]