Основная теорема: почему T (n) = 16T (n / 4) + n!считается Θ (п!) - PullRequest
0 голосов
/ 23 декабря 2018

У меня возникла проблема, пытаясь понять, почему

T (n) = 16T (n / 4) + n!

считается

Θ (n!)

Ниже я использую следующую основную теорему:

https://www.geeksforgeeks.org/advanced-master-theorem-for-divide-and-conquer-recurrences/

enter image description here

Запутанная часть в том, что мой друг говорит, что ответ на самом деле O (n!), А не Θ (n!) ... Так что яя действительно в замешательстве.

1 Ответ

0 голосов
/ 23 декабря 2018

Теорема из CLRS:

Master theorem

В вашем случае a = 16, b = 4, f(n) = n!

Давайте вычислим nlogba.Это будет n^2

Теперь n! определенно больше, чем n^(2-e) и n^2, поэтому мы будем использовать третий случай теоремы.

Пусть c = 0.5.Это дает при подстановке 16 * (n / 4)! <= 0.5 * n!

Давайте поместим значение в n и проверим:

Если n = 100, 16 * (100 / 4)! <= 0.5 * 100!, что дает 16 * 25! <= 0.5 * 100!.Это неравенство является правильным, поскольку 100! будет намного больше, чем 25!.Даже умножение на 16 не сделает его больше 0.5 * 100!.

Это будет верно для других больших значений n.Таким образом, сложность согласно теореме должна быть bigtheta(n!)

...