2011-05-18 2 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) заключается в том, что B предпочтительнее, когда n растет с большей скоростью асимптотически. Дни и секунды здесь считаются константой, и поэтому не имеют значения, когда n приближается к бесконечности.

для ii) моя догадка - 2 дня. Но подумал, что другие получили тот же

+1

Я хочу ответить, но это действительно относится к http://math.stackexchange.com –

+0

Попробуйте и напишите информацию в (ii) в уравнении. Подумайте просто. Точно так же, если я сказал, что два яблока стоят $ 10, вы скажете '2x = 10' и решите для x, сделайте это здесь для n. – davin

+1

Но вам действительно нужно решить n для уравнения '(1/4) (n^3) = 24 * 60 * 60 * n'. Это очень просто решить. –

ответ

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 равно между двумя функциями.

Смежные вопросы