Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

Глава 4. Аналитическое Суждение Инструментов 4.4 (Правила Образца): Учитывая положительные целые числа a, b, и c, мы имеем:

1. (ba) c = баккара 2. babc = ba+c 3. ba/bc = баккара

Например, у нас есть следующее:

• 256 = 162 = (24) 2 = 24∙2 = 28 = 256 (Правило 1 Образца)

• 243 = 35 = 32+3 = 3233 = 9 27 = 243 (Правило 2 Образца)

• 16 = 1024/64 = 210/26 = 210-6 = 24 = 16 (Правило 3 Образца)

Мы можем расширить показательную функцию на образцов, которые являются частями или реальный

числа и к отрицательным образцам, следующим образом. Учитывая положительное целое число k, мы de - прекрасный b1/k, чтобы быть kth корнем b, то есть, номер r, таким образом, что rk = b. Например, 251/2 = 5, с тех пор 52 = 25. Аналогично, 271/3 = 3 и 161/4 = 2. Этот подход al - понижения нас, чтобы определить любую власть, образец которой может быть выражен как часть с тех пор

ba/c = (ba) 1/c, по Правилу 1 Образца. Например, 93/2 = (93) 1/2 = 7291/2 = 27. Таким образом ba/c - действительно просто cth корень составного образца ba.

Мы можем далее расширить показательную функцию, чтобы определить основной обмен для любой реальной цифры - частота ошибок по битам x, вычислив серию чисел формы ba/c для счета частей, которые прогрессивно становятся ближе и ближе к x. Любое действительное число x может быть приближено arbi-trarily рядом со счетом части; следовательно, мы можем использовать счет части в качестве образца b, чтобы добраться произвольно близко к основному обмену. Так, например, номер 2p хорошо определен. Наконец, учитывая отрицательного образца d, мы определяем BD = 1/b-d, который соответствует

применение Правила 3 Образца с = 0 и c =-d.

Геометрические суммы

Предположим, что у нас есть петля, где каждое повторение берет мультипликативный фактор дольше

чем предыдущий. Эта петля может быть проанализирована, используя следующее суждение.

Суждение 4.5: Для любого целого числа n³ 0 и любое действительное число таким образом, что a> 0 и

a = 1, рассмотрите суммирование

n

i = å0ai = 1 + + a2 ++

(помнящий, что a0 = 1, если a> 0). Это суммирование равно

an+1 - 1.

a-1

Суммирование как показано в Суждении 4.5 называют геометрическим суммированием, быть -

причина каждый термин геометрически больше, чем предыдущий если a> 1. Например, все работающие в вычислении должны знать это

1 + 2 + 4 + 8 + + 2n-1 = 2n- 1,

так как это - самое большое целое число, которое может быть представлено в двоичной системе счисления, используя n биты.

+1 51. E 4 +1 1. E 3 +1 1. E 2 +1 1. E 1 +1 1. E 0 +1 1. E 9 +0 1. E 8 +0 1. E 7 +0 1. E 6 +0 1. E 5 +0 1. E 4 +0 1. E 3 +0 1. E 2 +0 1. E 1 +0 1. E 0 01. E +4.1. Семь функций, используемых в этой книге 161

4.1.8 Сравнение темпов роста

Таким образом, Таблица 4.1 показывает каждую из семи общих функций, используемых в алгоритме

анализ в заказе.

постоянный логарифм линейный n-log-n квадратный кубический показательный

1 регистрация n n n регистрируют n n2 n3

Таблица 4.1: Классы функций. Здесь мы предполагаем, что a> 1 - константа.

Идеально, мы хотели бы, чтобы операции по структуре данных бежали во времена, пропорциональные постоянной функции или функции логарифма, и мы хотели бы, чтобы наши алгоритмы бежали в линейное или n-log-n время. Алгоритмы с квадратной или кубической продолжительностью менее практичны, но алгоритмы с показательной продолжительностью неосуществимы для всех кроме самых маленьких размерных входов. Заговоры семи функций показывают в рисунке 4.2.

1. E+44

1. E+40 1. E+36 1. E+32 1. E+28 1. E+24 1. E+20 1. E+16 1. E+12 1. E+08 1. E+04 1. E+00

Показательная кубическая квадратная линейная логарифмическая константа N-Log-N

Рисунок 4.2: Темпы роста для семи фундаментальных функций используются в анализе алгоритма. Мы используем основу = 2 для показательной функции. Функции подготовлены в диаграмме регистрации регистрации, чтобы сравнить темпы роста прежде всего как наклоны. Несмотря на это, показательная функция становится слишком быстрой, чтобы показать все ее ценности на диаграмме. Кроме того, мы используем научное примечание для чисел, где aE+b обозначает a10b.

Функции потолка и пола

Один дополнительный комментарий относительно функций выше в порядке. Стоимость

из логарифма, как правило, не целое число, все же продолжительность алгоритма обычно выражается посредством количества целого числа, такого как число выполненных операций. Таким образом анализ алгоритма может иногда включать использование функции floor и перекрывающий функцию, которые определены соответственно следующим образом:

•⌊x ⌋ = самое большое целое число, меньше чем или равное x

•⌈x ⌉ = самое маленькое целое число, больше, чем или равный x