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
1999
А как вы понимаете сложность $O(f(n) )$?

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


20/08/14
12083
Россия, Москва
Например умножение числа в формате плавающей точки $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
1999
Не совсем, от самих данных время работы также может зависеть. Это надо понимать так: для достаточно больших $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
4808
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
9620
Цюрих

(Оффтоп)

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

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


24/03/09
674
Минск
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 ] 

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



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

Сейчас этот форум просматривают: Mikhail_K


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

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