Реальный пример экспоненциальной временной сложности

Я ищу интуитивный, реальный пример проблемы, которая требует (в худшем случае) экспоненциальной сложности времени для решения для разговора, который я даю.

вот примеры для других сложностей времени, которые я придумал (многие из них взяты из это так вопрос):

  • O (1) - определение, является ли число нечетным или четным
  • O (log N) - поиск слова в словаре (с помощью двоичного поиска)
  • O (N) - чтение a книга
  • O (N log N) - сортировка колоды игральных карт (с помощью сортировки слиянием)
  • O (N^2) - Проверка, есть ли у вас все в списке покупок в вашей тележке
  • O (бесконечность) - бросая монету, пока она не приземлится на головы

какие идеи?

4 ответов


  • O (10^N): попытка сломать пароль, проверяя каждую возможную комбинацию (предполагая числовой пароль длины N)

п.з. почему ваш последний пример имеет сложность o(бесконечность) ? это линейный поиск O (N) .. в мире насчитывается менее 7 миллиардов человек.


решение грубой силы проблемы коммивояжера-O (n!) который приблизительно O (N^N)


решение задачи грубой силы и наивной n-queens.

вы должны разместить n ферзей на доске n * n без них, чтобы их взяли другие.

while there are untried configs, go to next solution and test it

предполагая, что каждая королева находится в данной строке, есть n возможностей для размещения королевы и n для (n-1) других королев (потому что повторяющиеся строки не проверяются).

следовательно, у вас есть o(n^n) сложность


Как насчет нахождения подмножества целых чисел в наборе, чтобы их сумма была обозначенным значением X?

Я считаю, что это имеет сложность O(2^(н/2))