我知道这是一个简单的问题,但请耐心等待。我被给予了许多算法复杂性(log(n),sqrt(n),n,...),我需要找到可以在指定时间内解决的最大尺寸n(1秒,1分钟, 1小时, ...)。说明书还说“......假设算法,解决问题需要f(n)微秒)”。有人可以帮我开始吗?我已经有了解决方案,我只是不知道如何计算它。
log(n)=>的解决方案
1 second = 2^(10^6)
1 minute = 2^(6 * 10^7)
1 hour = 2^(3.6 * 10^9)
答案 0 :(得分:2)
虽然这是一次可怕的练习,但实际上很容易。您将获得一个函数f(n)
和该函数的值。例如,1秒意味着10 ^ 6微秒。因此,基本上要求您解决n
以下等式:
f(n) = 10^6
,因为10 ^ 6us是1秒f(n) = 60 * 10^6
,因为60秒是1分钟f(n) = 3600 * 10^6
,因为3600秒是1小时在您的示例中f(n)
是log(n)
。简短的回答是,如果您有f(n) = k
,那么要查找n
,您需要f
的反函数。换句话说,n = f-1(k)
。
f(n) = log(n)
,f-1(n) = 2^n
。
您现在应该能够自己确定连接并解决其他f(n)
的作业。