log(n!)= log(n * n(-1)* .... 1)= log(n)+ log(n-1)+ .... + log(1) 。所以它在 O(n * logn)中。但它也在 big-Omega(n * logn)吗?我不这么认为,但我的自动面试测试是这样想的!
log(n)+ log(n ^ 2)= log(n)+ 2 * log(n)= 3 * log(n)。所以,它是,大O,大欧米茄和大-Theta(log(n))。但出于某种原因,我的自动面试测试却不这么认为。
我的理解是正确还是自动化测试正确?
P.S:我讨厌自动面试测试!答案 0 :(得分:1)
log(n)+ log(n ^ 2)= log(n)+ 2 * log(n)= 3 * log(n)。所以,它是,大O, big-Omega和big-Theta(log(n))。但出于某种原因,我的自动化 面试测试不然。
IMO,你是对的,自动面试测试不是(如果你正确提出了问题)。
log(n!)= log(n n(-1) .... 1)= log(n)+ log(n-1)+ .... + log( 1)。就是这样 在O(n logn)。但它是否也在大欧米茄(n 登录)?我不这么认为, 但我的自动面试测试是这样想的!
自动面试测试是正确的,你不是。 log(n!)= log(n)+ log(n-1)+ .... + log(1)> = log(n)+ ... + log(n / 2)=(n / 2 )log(n / 2)> =(n / 2)log(sqrt(n))= n * log(n)/ 4(所有“> =”用于足够大的n)
答案 1 :(得分:1)
关于log n!和大欧米茄:
N!将数字从1乘以n。这些数字的后半部分都是≥n/2≥sqrt(n),所以log n! ≥(n / 2)* log(sqrt(n)))= n / 2 * log(n)/ 2 =(n log n)/ 4.下限非常糟糕,但足以显示日志N! =大欧米茄(n log n)。