2014-09-29 2 views
0

Если f (n) - O (g (n)), а f (n) - O (h (n)), то какова связь между f (n), g (n) и h (n)?Теория времени сложности

Я видел этот вопрос во многих местах и ​​никогда не мог понять разницу. Для меня это выглядело как g (n) и h (n) как одно и то же, тогда как это не так.

Я даю из возможных вариантов, которые могли бы быть возможно, пожалуйста, скажите, какое условие выполняется:

А. п (п) + г (п) O (ч (п))

Б. г (п) + л (п) = О (е (п))

С. F (п) О (г (п) + л (п))

+3

Этот вопрос, как представляется, вне темы потому что речь идет о CS, а не о практическом программировании. Попробуйте cs.stackexchange.com. – Barmar

+0

@Barmar У вас нет идеи, почему нельзя использовать этот форум в флагов «не принадлежит здесь»? –

+0

Я думаю, что третий вариант является самым близким, скажите, если я ошибаюсь – 2014-09-29 21:30:48

ответ

1

Вернитесь к определению нотации «Big-Oh». Здесь F (п) = О (ч (п)), который означает, что существует такое целое число п ч и вещественные постоянные с ч, 1 и с ч, 2 такое, что для любого п> п ч,

с ч, 1. h (n) ≤ f (n) ≤ c h, 2. ч (п) (1)

Аналогично, так как F также О (г (п)), существует также п г и вещественные постоянные с г, 1 и с г, 2 такие что для любого п> п г

гр г, 1. g (n) ≤ f (n) ≤ c g, 2. г (п) (2)

Оттуда, если взять п> тах (п ч, п г), оба неравенства, но они не приносят вам никакого знания об отношениях между h и g.

EDIT:

Поскольку вы не можете ничего между ч и г сказать, что вы не можете доказать предположения А и В без дополнительных знаний. С другой стороны, для любого n> max (n h, n g) у вас есть [1/2. (1) + 1/2.(2)]:

1/2. c g, 1. g (n) + 1/2 c h, 1. h (n) ≤ f (n) ≤ 1/2. c g, 2. g (n) + 1/2. c h, 2. ч (п)

И тогда

1/2. мин (с г, 1, с ч, 1). (г (п) + Н (п)) ≤ F (N) ≤ 1/2.max (с г, 1, с ч , 1). (г (п) + л (п))
Следовательно, ф (п) = О (г (п) + л (п))

+0

здесь не первый вариант. Как сказал chepner в комментариях: Предположим, что я задал z так, что для всех n, z (n) = f (n) + g (n). Не могли бы вы сразу отказаться от возможности, что z (n) = O (h (n))? – 2014-09-29 21:48:44

+0

@ user4058730, нет, потому что вы не можете связать g (n) с h (n) с такими небольшими знаниями. Я не говорю, что это определенно ложно, я просто говорю, что вы не можете доказать, что это всегда верно при данной гипотезе. – Rerito

3

Мы имеем:

  • f (n) - O (g (n)) (При условии)
  • F (п) = О (ч (п)) (с учетом)

Вы не можете сказать ничего об отношениях между г (п) и Н (п) как можно быть «больше», чем другой, или наоборот. Все, что вам известно, это то, что f (n) ограничено g (n) и что f (n) ограничено h (n), но это ничего не говорит о том, как g (n) и h (n) относятся к каждому Другие.

+0

Связь между этими уравнениями, функциями, они находятся в одном классе сложности. нет? – DarthVader

+0

Вы не можете утверждать, что больше или меньше, вопрос о классе сложности. Следовательно, они находятся в одном классе сложности. – DarthVader

+1

Учитывая, что 'f = O (g)' и 'f = O (h)', вы не можете сказать ничего о том, как связаны 'g' и' h'. Либо «g = O (h)», либо «h = O (g)», но вы не знаете, что без дополнительной информации. – chepner

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