Да, возможно иметь бесконечную цепь.
Я уверен, что вы уже знакомы с некоторыми примерами:
У вас здесь бесконечная цепочка: полиномы растущей степени. Вы можете пойти дальше? Конечно! Экспонента растет быстрее (асимптотически), чем любой многочлен.
И, конечно, вы можете продолжать:
O(x)⊆O(x2)⊆…⊆O(x42)⊆…
O(x)⊆O(x2)⊆…⊆O(x42)⊆…O(ex)
O(ex)⊆O(xex)⊆O(e2x)⊆O(eex)⊆…
Вы можете построить бесконечную цепочку и в другом направлении. Если то (придерживаясь положительных функций, поскольку здесь мы обсуждаем асимптотику функций сложности). Итак, мы имеем, например:f=O(g)1g=O(1f)
O(x)⊆O(x2)⊆…⊆O(exx2)⊆O(exx)⊆O(ex)
Фактически, для любой цепочки функций вы можете создать функцию которая будет расти быстрее всех из них. (Я предполагаю, что являются функциями от до .) Сначала начните с идеи . Это может не сработать, потому что множество может быть неограниченным. Но поскольку мы заинтересованы только в асимптотическом росте, достаточно начать с малого и постепенно расти. Возьмите максимум за конечное число функций.
f1,…,fnf∞fiNR+f∞(x)=max{fn(x)∣n∈N}{fn(x)∣n∈N}
f∞(x)=max{fn(x)∣1≤n≤N}if N≤x<N+1
Тогда для любого , , так . Если вам нужна функция, которая растет строго быстрее ( ), возьмите .
NfN∈O(f∞)∀x≥N,f∞(x)≥fN(x)f∞=o(f′∞)f′∞(x)=x⋅(1+f∞(x))