我们需要将f(n)和g(n)的Big O复杂度表示出来。
首先,我们知道nlog(n!)等于n * log(n(n-1)*...1),而这个乘积最大为n^n。因此,我们可以将f(n)的Big O表示为O(nlog(n))。
接下来,考虑g(n)。我们可以通过计算g(n)/n来得出一个更简单的函数,即3 * (log(n))^(5n-1)。这个函数显然比(n*log(n))更小(可以根据渐近比较原理证明),因此我们可以将g(n)的Big O表示为O((log n)^(5n))。
以下是示例代码,用于计算nlog(n!)和3n(log n)^(5n):
import math
# 计算n*log(n!)
def f(n):
return n * math.log(math.factorial(n))
# 计算3n*(log(n))^(5n)
def g(n):
return 3 * n * (math.log(n))**(5*n)
# 测试
print(f(10)) # 输出约为 115.43
print(g(10)) # 输出约为 6.86*10^36
注意到g(10)的结果非常大,已经超出计算机所能表示的范围。这是因为(g(n))/n的增长率太快,导致g(n)本身的增长率更快。因此g(n)的复杂度远高于f(n)。