Я предполагаю, что вы хотите доказать, что функция n!
является элементом множества O(n^n)
.Это легко доказать:
Определение: функция f(n)
является элементом множества O(g(n))
, если существует c>0
, такое, что существует m
, такое что для всех k>m
у нас это f(k)<=c*g(k)
.
Итак, мы должны сравнить n!
с n^n
.Давайте напишем их один под другим:
n! = n * (n-1) * (n-2) * (n-3) * ... * 3 * 2 * 1
n^n = n * n * n * n * ... * n * n * n
Как видите, первая строка (n!
) и вторая строка (n^n
) имеют ровно n
элементов с правой стороны.Если мы сравним эти элементы, то увидим, что каждый элемент имеет максимальный размер, соответствующий соответствующему элементу во второй строке.Таким образом n! <= n^n
(по крайней мере, для n> 5).
Итак, мы можем - посмотрим на определение - скажем, что существует c=1
такое, что существует m=5
такое, что для всех k>5
у нас есть это k! < k^k
, что доказывает, что n!
действительно является элементом O(n^n)
.