n的最小值是什么,运行时间为100n ^ 2的算法比同一台机器上运行时间为2 ^ n的算法运行得快?
范围
虽然我对答案很感兴趣,但我更感兴趣的是如何逐步找到答案(这样我就可以重复这个过程来比较任何两个给定的算法)。
来自麻省理工学院新闻算法书
答案 0 :(得分:3)
你想要n
的值,其中100×n 2 小于2×n。
这是100×n 2 的解决方案 - 2×n <1。 0,恰好是0 < n < 0.02
。
千言万语:
编辑:
最初的问题是2×n,而不是2 n (见评论)。
对于2 n ,前往https://math.stackexchange.com/questions/182156/multiplying-exponents-solving-for-n
答案是15
答案 1 :(得分:3)
首先要知道的是运行时间意味着什么。如果我们在理论上谈论算法,算法的运行时间是完成所需的步数(或时间),具体取决于输入的大小(其中大小为输入例如是比特数,但有时也考虑其他度量)。从这个意义上讲,需要最少步骤数的算法是最快的。
所以在你的两个公式中,n是输入的大小,100 * n ^ 2和2 ^ n是两个算法在给定大小为n的输入时运行的步数。
乍一看,2 ^ n算法看起来比100 * n ^ 2算法快得多。例如,对于n = 4,100 * 4 ^ 2 = 1600和2 ^ 4 = 16。
然而,2 ^ n是指数函数,而100 * n ^ 2是多项式函数。这意味着当n足够大时,情况将是2 ^ n> 1。 100 * n ^ 2。所以你必须解决不平等100 * n ^ 2&lt; 2 ^ N。这已经是一个相当小的n的情况,所以你可以开始评估函数,从n = 5开始,你将在几分钟内得到问题的答案。