Sympyでオーダー(ランダウの記号O)を求める

まあ,オーダーなんて簡単に求まる訳だけど.Pythonネタとして考えたい.

Find the complexity of the following equations using big O notation [on hold] – StackOverflow

Sympyを使えば一瞬で求まる.

\log^{2}{\left (2 \right )} \log{\left (2 n \right )} + 3 \log{\left (8 n \right )}

0.3 n + 5 n^{1.5} + 2.5 n^{1.75}

from sympy import *
init_printing()
x, y, z, t = symbols('x y z t')
k, m, n = symbols('k m n', integer=True)
f, g, h = symbols('f g h', cls=Function)


f = 3*log(8*𝑛) + log(2)*log(2)*log(2*𝑛)
g = 0.3*𝑛 + 5*𝑛**1.5 + 2.5*n**1.75
O(f, (n, oo))

\mathcal{O}\left(\log{\left (n \right )} + 3 \log{\left (2 \right )}; n\rightarrow \infty\right)

O(g, (n, oo))

\mathcal{O}\left(\left(\frac{1}{n}\right)^{-1.75}; n\rightarrow \infty\right)

Sympyは本当に便利なので,Jupyter Labで(画面1/4)常に開きっぱなし.

広告
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中