КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Качество оценок
После вывода оценки сложности алгоритма часто возникает вопрос о том, насколько эта оценка хороша и нельзя ли входящие в оценку константы и функции заменить другими так, чтобы оценка стала более точной, и, как следствие, несущей больше информации об исследуемом алгоритме. Пример 10.1. В примере 9.1 для сложности ТЕ{аг) по числу делений алгоритма Евклида мы легко получили верхнюю оценку аъ а затем, после некоторых усилий, пришли к логарифмической верхней оценке (9.6). Отвлекаясь от значений констант, перейдем от (9.6) к rE(a 1) = 0(log a 1). (10.1) Нами пока не доказано, что оценка (10.1) является точной, и, как следствие, что не верна, скажем, оценка O{\f\oga1) или CKloglog a ^) и т.д. Чтобы доказать точность (10.1), достаточно подобрать для алгоритма Евклида последовательность входов {а^,а^), (а™,а™),... таких, что последовательность а^ (последовательность размеров входа) неограниченно возрастает и СЕ(,а^\ а^) = f2(log a ^ n )) при п—><*>; тогда, очевидно, будем иметь ТЕ(а^) = U(loga^). Фактически, нам нужна последовательность таких входов возрастающего размера, для каждого из которых алгоритм Евклида работает медленно. Подойдет, например, последовательность входов 84 Глава 3. Оценивание числа шагов (итераций) алгоритма UWb F J, п = 0,1,..., где F q,^,^,... —числа Фибоначчи, определяемые равенствами F 0 = О, F x = 1 и правилом «каждое следующее число равно сумме двух предыдущих», т. е. рекуррентным соотношением Fn+2 = Fn+i +Fn. Из определения чисел Фибоначчи следует, что применение алгоритма Евклида к Fn+1,Fn при п ^ 1 требует п делений (все частные будут равны единице), поэтому C E(Fn +1, F J = п. По индукции доказывается, что для всех неотрицательных п справедлива формула Бине: J7 -_к(фл_(_ф)-л) (Ю.2) V5 где ф= 1 + (деление отрезка в отношении 1: ф называют золотым сечением). Так как ф > 1, то из (10.2) получаем 0" = A/5 Fn (l+ o (l)), (10.3) и, поскольку log0(1 +о(1)) = о(1), с помощью логарифмирования (10.3) по основанию ф имеем СеС^п+i» Рп) = п = log<p Fn + 0(1) = n(log Fn), откуда следует, что оценка (10.1) точная. Мы докажем более сильное утверждение: ТЕ{а1)>^\о%фа1+Г, (10.4) где у— некоторая константа. Это вместе с (10.1) даст rE(a 1) = e(log a 1). (10.5) Приступая к доказательству, мы перейдем от функции C E(a 0, a i), имеющей два аргумента, к функции одного аргумента. Каждому входу (a n, сь), a n ^ сь > 0, мы сопоставим рациональное число г = — ^ 1, которое однозначно определяет число шагов алгоритма Евклида для a n, а-.. (Пусть - = ^, апиа, взаимно просты, a n = ua n, сь = ua -i; то- гда остатки a 2, a 3,... и a 2, a 3,..., возникающие в ходе применения алгоритма Евклида к а0,аг и соответственно к а0,аг, отличаются лишь множителем и.) Будем обозначать это число шагов через С'Е{г). Таким образом, если г = ^, то С'(г) = C E(a 0, a i). § 10. Качество оценок Для дальнейшего будет полезным следующее свойство чисел Фибоначчи:
Fn -1 Fn +1 = (-1) n, n = 1,2,... (10.6) (доказывается индукцией по п). Рассмотрим вложенные отрезки Φ1 э зΦрΦ3э... числовой прямой: f2„ f2„+1
^ 2 п f2 +1 2 n -1, F 2n Соотношение (10.6) позволяет установить, что ни один из этих
отрезков не пуст и что длина отрезка Φ n равна Φ1 = [1, 2] (рис. 15). Далее можно доказать, что если рациональное р 2 F4 Р 6
Дата добавления: 2014-01-11; Просмотров: 278; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |