Функция Ceil(logn)
(а у вас указаны именно такие скобки с округлением вверх) имеет ограничение Theta(logn)
, поскольку оно не превосходит значения logn+1
, и (logn+1)/logn==>C
(стремится к единице, константе). Для строгого доказательства таких моментов, думаю, будет много, но заниматься ими не хочется. Благодаря Theta
будем использовать просто f(n)=(log(n))!
Нужно показать, как сравнивается f(n) ? O(n^k)
. Со степенной функцией сравнивать трудно, возьмем от обеих сторон логарифмы, и нужно показать сравнение log(f(n)) ? k*log(n)
По формуле Стирлинга log((log(n))!) = Theta(logn*loglogn)
. Сравниваем с логарифмом степенной функции
logn*loglogn ?? k*logn //делим на logn
loglogn ?? k
Но k
- константа, а слева - бесконечно (хоть и медленно) растущая функция, её рост описывается как омега_малое(n)
. Таким образом,
logn*loglogn = w(n)*logn
и f(n)=(log(n))! === w(n) * Theta(n^k) > O(n^k)
, т.е. не является полиномиально ограниченной