2011-05-18 44 views
0
Two algorithms A and B solve the same algorithmic problem, A taking n^3 seconds and B taking n days. 
(i) Which algorithm is asymptotically preferable? 
(ii) How large does n need to be before B takes one-quarter of the time taken by A? 

如何解决这些问题?有问题的帮助

我对(i)的回答是,随着n以渐近的速度增长,B更可取。这里的天和秒数是一个常数,因此当n接近无穷大时无关紧要。对于ii)我的猜测是2天。但是,不知道是否其他人得到了相同的

+1

我想回答,但这真的属于http://math.stackexchange.com – 2011-05-18 16:39:22

+0

尝试和写在(ii)中的信息在一个等式中。认为简单。同样,如果我说两个苹果花费10美元,你会说'2x = 10'并解决x,在这里做n。 – davin 2011-05-18 16:40:21

+1

但实际上你只需要为方程(1/4)(n^3)= 24 * 60 * 60 * n'求解n。这很容易解决。 – 2011-05-18 16:41:03

回答

1

我可能是完全错误的在这里,但我想你想这

24*60*60*n = n^3 * 1/4 

,当插入wolphram alpha

587.87 ....

-587.87在一些替代宇宙;)

0

这看起来像一个蛮力类型的算法会工作给你一个更好的问题。我会看看这两个函数相等所需的总时间以及高于和低于该阈值的情况。另外,对于良好的做法,寻找多种解决方案可能会很好。

y=n^3 seconds 
y=n * (60 seconds * 60 minutes * 24 hours) seconds = n seconds per day 

然后查看n的递增值,其中y的值在两个函数之间相等。