この関数の成長の順序を見つけるための適切な方法は何ですか?

StackOverflow https://stackoverflow.com/questions/1417152

  •  06-07-2019
  •  | 
  •  

質問

2 ^ n + 6n ^ 2 + 3n

最高次の項を使用したO(2 ^ n)だけだと思いますが、これを証明するための正式なアプローチは何ですか?

役に立ちましたか?

解決

無限で制限を使用することで、 2 ^ n + n ^ 2 + n = O(2 ^ n)であることを証明できます。具体的には、 lim(n-> inf。)f(n)/ g(n)の場合、 f(n) O(g(n))です。 は有限です。

lim (n->inf.) ((2^n + n^2 + n) / 2^n)

inf / inf、不定形があるため、 L'Hopitalのルールを使用して、分子と分母を区別します。以下で作業できます:

lim (n->inf.) ((ln(2)*2^n + 2n + 1) / (ln(2)*2^n))
lim (n->inf.) ((ln(2)*ln(2)*2^n + 2) / (ln(2)*ln(2)*2^n))
lim (n->inf.) ((ln(2)*ln(2)*ln(2)*2^n) / (ln(2)*ln(2)*ln(2)*2^n))

制限は1なので、 2 ^ n + n ^ 2 + n は確かに O(2 ^ n)です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top