2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Вопрос по теории алгоритмов. Оценка сложности алгоритма
Сообщение31.01.2021, 13:31 


31/01/21
8
Здравствуйте, в книге "Величайшие математические задачи" я нашёл оценку сложности $O(\log\log n)$. Что обозначает эта сложность? И какая разница между оценкой сложности $O(\log\log n)$ и $O(\log n)$?

 Профиль  
                  
 
 Re: Вопрос по теории алгоритмов. Оценка сложности алгоритма
Сообщение31.01.2021, 13:45 
Заслуженный участник


20/04/10
1878
А как вы понимаете сложность $O(f(n) )$?

 Профиль  
                  
 
 Re: Вопрос по теории алгоритмов. Оценка сложности алгоритма
Сообщение31.01.2021, 13:47 
Заслуженный участник


20/08/14
11780
Россия, Москва
Например умножение числа в формате плавающей точки $n=a.aa \cdot b^{ccc}$ на степень основания системы счисления $y=b^k$ сводится к сложению чисел $ccc+k$, что выполняется за примерно $\log (ccc+k)$, или порядка $\log \log n$ при $k \ll ccc$. Вот и ваша сложность.

 Профиль  
                  
 
 Re: Вопрос по теории алгоритмов. Оценка сложности алгоритма
Сообщение31.01.2021, 13:54 


31/01/21
8
lel0lel в сообщении #1503518 писал(а):
А как вы понимаете сложность $O(f(n) )$?

Я новичок в этой теме, так что я могу понимать неправильно.
Сложность $O(f(n) )$ означает, что время работы алгоритма зависит только от количества входных данных.

 Профиль  
                  
 
 Re: Вопрос по теории алгоритмов. Оценка сложности алгоритма
Сообщение31.01.2021, 14:07 
Заслуженный участник


20/04/10
1878
Не совсем, от самих данных время работы также может зависеть. Это надо понимать так: для достаточно больших $n$ найдётся такая константа $C$, что число операций производимых при выполнении алгоритма не превосходит $C f(n).$ Каких именно операций надо уточнять дополнительно, не всегда элементарных. Время работы алгоритма, конечно, связано с числом операций.

 Профиль  
                  
 
 Re: Вопрос по теории алгоритмов. Оценка сложности алгоритма
Сообщение31.01.2021, 14:14 


31/01/21
8
lel0lel в сообщении #1503522 писал(а):
Не совсем, от самих данных время работы также может зависеть. Это надо понимать так: для достаточно больших $n$ найдётся такая константа $C$, что число операций производимых при выполнении алгоритма не превосходит $C f(n).$ Каких именно операций надо уточнять дополнительно, не всегда элементарных. Время работы алгоритма, конечно, связано с числом операций.

Спасибо, учту.

 Профиль  
                  
 
 Re: Вопрос по теории алгоритмов. Оценка сложности алгоритма
Сообщение31.01.2021, 15:25 
Заслуженный участник
Аватара пользователя


01/09/13
4656
Dmitriy40 в сообщении #1503519 писал(а):
Вот и ваша сложность.

Конечно нет - $n$ означает размер данных.

 Профиль  
                  
 
 Re: Вопрос по теории алгоритмов. Оценка сложности алгоритма
Сообщение01.02.2021, 20:08 
Заслуженный участник


27/04/09
28128
Хотел вчера помянуть ради интереса сложность $O(F(x))$, где $F$ — обратная к функции Аккермана (такая сложность возникает для какого-то алгоритма и её натурально заменяют в дальнейших оценках на константную), но тема пошла веселее. :mrgreen:

 Профиль  
                  
 
 Re: Вопрос по теории алгоритмов. Оценка сложности алгоритма
Сообщение01.02.2021, 20:22 
Заслуженный участник
Аватара пользователя


16/07/14
9151
Цюрих

(Оффтоп)

arseniiv в сообщении #1503732 писал(а):
такая сложность возникает для какого-то алгоритма
Для леса непересекающихся множеств. Там очень забавное доказательство, имеющее вид "почти вся работа делается в поддереве рядом с корнем - так что сложность не больше чем логарифмическая; а в этом поддереве почти вся работа опять делается рядом с корнем - так что сложность не больше чем двойной логарифм; а в этом поддереве опять вся работа рядом с корнем ...". Я когда-то проследил за этой логикой до $\log^*$, но дальше осознать не смог.

 Профиль  
                  
 
 Re: Вопрос по теории алгоритмов. Оценка сложности алгоритма
Сообщение02.02.2021, 14:07 


24/03/09
573
Минск
lel0lel в сообщении #1503518 писал(а):
А как вы понимаете сложность $O(f(n) )$?


$n$ - это так сказать, некая мера входных данных, для алгоритма. Это не обязательно может быть численность каких то элементов, над которыми будет работать алгоритм. Пример подобной задачи - провести сортировку в массиве из $n$ элементов.
Вот задача например, факторизовать , т.е. разложить некое число на множители. Чем больше число, тем больше его длина записи - $n$ цифр (знаков).

И сложность (трудоёмкость) алгоритмов может быть 1) экспоненциальной от $n$, 2) субэкспоненциальной, 3) полиномиальной, 4) линейной или $O(n \ln n)$ , 5) логарифмической, т.е. $O(\ln n)$ .

Пример 1-го - факторизация числа путем перебора делителей, 2-го - факторизация числа методом эллиптических кривых, 3-го - проверить, простое число или составное, 4-го - сортировка массива, или поиск элемента в массиве, 5-го - поиск элемента в сбалансированном дереве.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group