Algorithm 数学算法-如何求解和替换?

Algorithm 数学算法-如何求解和替换?,algorithm,math,Algorithm,Math,我无法理解算法背后的基本数学。例如,这里有一个问题: 如果 f(n)=O(g(n)) 是 f(n)*log(f(n)^c)=O(g(n)*log(g(n))) ? 我该如何回答这个问题?根据我到目前为止的理解,f(n)=O(g(n))只有当g(n)时,你才能这样做: f(n)*log(f(n)^c)=c*f(n)*log(f(n))=O(1)*O(g(n))*log(O(g(n))=O(1)*O(g(n))*O(log(g(n))=O(g(n)*log(g(n)) 所以这个问题的答案是正确的,这

我无法理解算法背后的基本数学。例如,这里有一个问题:

如果

f(n)=O(g(n))

f(n)*log(f(n)^c)=O(g(n)*log(g(n)))

?


我该如何回答这个问题?根据我到目前为止的理解,f(n)=O(g(n))只有当g(n)时,你才能这样做:

f(n)*log(f(n)^c)=c*f(n)*log(f(n))=O(1)*O(g(n))*log(O(g(n))=O(1)*O(g(n))*O(log(g(n))=O(g(n)*log(g(n))

所以这个问题的答案是正确的,这里需要的就是对数函数的性质

这里有一个步骤不清楚:为什么
log(O(g(n))=O(log(g(n))

证明:如果
f(n)=O(g(n))
,则存在一个常数
C
,对于足够大的
n
f(n)f(n)=O(g(n)),你的意思是

存在一个k,使得f(n)=n_1。---1


这意味着log(f(n)^c)我很困惑,你是怎么得到这个的:log(c*g(n))=log(g(n))+c?它应该这样读吗:log(c)+log(g(n))?你能解释一下C2部分吗?我不太明白。1)C2是什么,为什么你把它等于2?2) 这是如何工作的:log(f(n))@haosmark C2只是另一个常数。对于足够大的n,log(C)log(C)+log(g(n))>=log(f(n))。你知道一本书或一本资源有类似的问题和解决方案(有解释)?我在这个问题上很不稳定