Теорема Габріеля Ламе обмежує кількість кроків за log (1 / sqrt (5) * (a + 1/2)) - 2, де основа журналу дорівнює (1 + sqrt (5)) / 2. Це для найгіршого сценарію для алгоритму, і це відбувається, коли вхідні дані є послідовними числами Фібаноччі.
Дещо ліберальніша межа: log a, де основа журналу (sqrt (2)), мається на увазі під Кобліцем.
Для криптографічних цілей ми зазвичай враховуємо побітову складність алгоритмів, беручи до уваги, що розрядність задається приблизно за k = loga.
Ось детальний аналіз побітової складності Евкліда Алгоріта:
Хоча в більшості посилань побітова складність Евклідового алгоритму задається O (loga) ^ 3, існує жорсткіша межа, яка є O (loga) ^ 2.
Поміркуйте; r0 = a, r1 = b, r0 = q1.r1 + r2. . . , ri-1 = qi.ri + ri + 1,. . . , rm-2 = qm-1.rm-1 + rm rm-1 = qm.rm
зауважте, що: a = r0> = b = r1> r2> r3 ...> rm-1> rm> 0 .......... (1)
а rm - найбільший спільний дільник a та b.
Ствердженням у книзі Кобліца (Курс теорії чисел та криптографії) можна довести, що: ri + 1 <(ri-1) / 2 ................. ( 2)
Знову в Кобліці кількість бітових операцій, необхідних для розділення k-бітового додатного цілого числа на l-бітове додатне ціле число (припускаючи k> = l), дається як: (k-l + 1) .l ...... ............. (3)
За (1) та (2) кількість розділів дорівнює O (loga), а отже, за (3) загальна складність дорівнює O (loga) ^ 3.
Тепер це може бути зведено до O (loga) ^ 2 зауваженням у Кобліці.
розглянемо ki = logri +1
за (1) та (2) маємо: ki + 1 <= ki для i = 0,1, ..., m-2, m-1 та ki + 2 <= (ki) -1 для i = 0 , 1, ..., м-2
і (3) загальна вартість m дивізіонів обмежена: SUM [(ki-1) - ((ki) -1))] * ki для i = 0,1,2, .., m
переставляючи це: SUM [(ki-1) - ((ki) -1))] * ki <= 4 * k0 ^ 2
Отже, побітова складність алгоритму Евкліда дорівнює O (loga) ^ 2.
a%b
. Найгірший випадок - це колиa
іb
є послідовними числами Фібоначчі.