Algorithm 运行时间为100n^2的算法的最小n值是多少
在同一台机器上,运行时间为100n^2的算法比运行时间为2^n的算法运行得快,n的最小值是多少 范围Algorithm 运行时间为100n^2的算法的最小n值是多少,algorithm,Algorithm,在同一台机器上,运行时间为100n^2的算法比运行时间为2^n的算法运行得快,n的最小值是多少 范围 虽然我对答案感兴趣,但我更感兴趣的是如何一步一步地找到答案(这样,如果可能的话,我可以重复这个过程来比较任何两个给定的算法) 从MIT Press Algorithms book中,您需要n的值,其中100×n2小于2×n 这是100×n2-2×n
虽然我对答案感兴趣,但我更感兴趣的是如何一步一步地找到答案(这样,如果可能的话,我可以重复这个过程来比较任何两个给定的算法)
从MIT Press Algorithms book中,您需要
n
的值,其中100×n2小于2×n
这是100×n2-2×n<0的溶液,正好是0
千言万语:
编辑:
原始问题讨论的是2×n,而不是2n(见注释)
对于2n,前往
答案是15你必须知道的第一件事是运行时间的含义。如果我们从理论上讨论算法,那么算法的运行时间是根据输入的大小完成的步骤数(或时间量)(输入的大小例如是位数,但有时也会考虑其他度量)。从这个意义上讲,需要最少步骤的算法是最快的 在你的两个公式中,n是输入的大小,100*n^2和2^n是两个算法运行的步数,如果输入的大小为n 乍一看,2^n算法看起来比100*n^2算法快得多。例如,对于n=4100*4^2=1600和2^4=16
然而,2^n是指数函数,而100*n^2是多项式函数。这意味着当n足够大时,2^n>100*n^2。因此,您必须解决不合格100*n^2<2^n。对于相当小的n,情况已经如此,因此您可以从n=5开始计算函数,几分钟后就可以得到问题的答案。可以想象,它大于
100m²=2m时的值m
,这可能会让人想起100m²-2m=0
。你为什么要否决这个问题?问题就在麻省理工学院的书上。哇…你上面的是谁?stackexchange的一个(错误-?)功能是,无论是向上投票还是向下投票都不需要评论,如果评论的文本没有声明评论,则没有与评论相关的投票(说到这里:我没有投票)。我强烈建议您检查您的问题,并告诉我们这是否是您想要问的问题。“2n”看起来很可疑,因为你的问题没有意义。如果100n^2<2n,则不存在整数。敏锐的观察啃咬者,正确的问题是100n^2<2^n。谢谢你抓住了是的,我想这是一些类似的东西,直到“总是这样”先生让我头疼。我一时不确定那里发生了什么(哈哈)。谢谢。一张图片就是1000个单词,哈哈。如果你不介意我问的话,你是用什么来生成这个漂亮的小图形的?@NateNeuhaus gnu octave。但是这个问题要求计算2^n,而不是2n:)仍然是一个很好的答案。谢谢@AXIOM的提问2^n。对于n个正整数,谢谢你的回答,但是这个问题是关于实践而不是理论的。此时,我正在做这本书第一章和第二章的练习,不太确定我的答案。就数学而言,我知道指数函数的增长速度比线性函数快得多。但是谢谢你的时间。如果你在做“算法”,而不是说“用c++编程”,那么你在做理论,而不是实践。请注意,问题被回滚到错误的版本(线性函数2n在本文中没有太大意义),并且您接受的答案回答了错误的问题。(我刚从这里开始,还没有足够的声誉对此做任何事情,或者对错误的答案发表评论。)我正在做算法。。。(等待)在C++中!华生,我在理论上的一些实践是怎样的呢?还是我只是在理论上进行实践?霍普杰真的很感谢你的贡献。你是学者吗?上一次我发现有10多句话是这样说的:“你必须用蛮力来做。”作者是一位著名的教授!