タグ付けされた質問 「landau-notation」

Big-O、Omegaなどの漸近表記に関する質問

3
使用する時間の複雑さの分析の表記をどのように知るのですか?
ほとんどの入門アルゴリズムクラスでは、(Big O)やような表記法が導入されており、学生は通常、これらのいずれかを使用して時間の複雑さを見つけることを学びます。OOOΘΘ\Theta ただし、、およびなどの他の表記法があります。ある表記法が別の表記法よりも望ましい特定のシナリオはありますか?oooΩΩ\Omegaωω\omega

2
Reynolds&Tymannによる成長の定義の順序
カール・レイノルズとポール・タイマンが書いた「プリンセス・オブ・コンピューター・サイエンス」(2008)という本を読んでいます(Schaum's Outlinesから出版)。 2番目の章では、名前のリストを単純に反復処理し、リスト内で特定の名前が見つかった場合にTRUEを返す順次検索の例を使用してアルゴリズムを紹介します。 著者は続けて言っています(17ページ): 順次検索アルゴリズムの「成長の順序」はnであると言います。この表記はT(n)です。また、成長の順序がT(n)の一定の因子内にあるアルゴリズムは、シータがNLであると言います。「シーケンシャル検索のシータはnです。」問題のサイズはn(検索されるリストの長さ)です。 これを理解するのは本当に難しいと思います。この本はエラーに満ちているので、何かが欠けているのか、上記の段落にタイプミスがあるのか​​はわかりません。一般的な英語では、「... say」で終わる文はめったにありません。 私は非常に混乱しています。 Tは何の略ですか?本は説明しません。時間ですか、シータですか? 「NLのシータ」が「シーケンシャル検索のシータがnである」ことを意味する場合 Lは何の略ですか?「線形」または「長さ」? 出版社に説明を求めて書いた。彼らは私のメッセージを著者に転送すると言った。彼らは答えていない。私は他のソースも調べてみましたが、それでも何かを誤解しているというしつこい感じがします。したがって、この段落を解読するまで休むことはできません。 誰かがその本のコピーを持っており、その段落を理解している場合。次に、その段落が正確かどうか、または他の言葉で説明してもらえれば幸いです。ありがとう。


6
漸近成長による関数のソート
たとえば、関数のリストがあるとします nloglog(n),2n,n!,n3,nlnn,…nlog⁡log⁡(n),2n,n!,n3,nln⁡n,…\qquad n^{\log \log(n)}, 2^n, n!, n^3, n \ln n, \dots どのようにそれらを漸近的にソートするのですか? f≤Og⟺f∈O(g)f≤Og⟺f∈O(g)\qquad f \leq_O g \iff f \in O(g)、 それらが実際にペアワイズ比較可能であると仮定すると(こちらも参照)?の定義を使用するのは厄介に思えますが、適切な定数および存在を証明するのは難しい場合がよくあり。OOOcccn0n0n_0 これは複雑さの尺度に関するものであるため、としての漸近的な挙動に興味がありn→+∞n→+∞n \to +\infty、すべての関数が非負の値()のみを取ると仮定します。∀n,f(n)≥0∀n,f(n)≥0\forall n, f(n) \ge 0

4
OとΩは最悪の場合と最良の場合にどのように関係しますか?
今日の講義では、バイナリサーチを使ってソートされた配列の要素を見つけるための非常に簡単なアルゴリズムについて議論しました。要素の配列の漸近的な複雑さを判断するように求められました。nnn 私の考えは、は最悪の場合の操作の数であるため、より具体的にはまたはことは明らかです。しかし、たとえば、最初に検索された要素にヒットした場合など、より良い結果を得ることができます-下限はです。O(logn)O(log⁡n)O(\log n)O(log2n)O(log2⁡n)O(\log_2 n)log2nlog2⁡n\log_2 nΩ(1)Ω(1)\Omega(1) 通常、アルゴリズムの最悪の場合の入力のみを考慮するため、講師はソリューションをとして提示しました。Θ(logn)Θ(log⁡n)\Theta(\log n) しかし、最悪の場合のみを考えるとき、与えられた問題のすべての最悪の場合が同じ複雑さを持っているとき、と表記を持つことのポイントは何ですか(は私たちが必要なすべてでしょう?)。OOOΩΩ\OmegaΘΘ\Theta ここで何が欠けていますか?

2
Cのvoid型がempty / bottom型と類似していないのはなぜですか?
ウィキペディアと私が見つけた他のソースはvoid、空のタイプではなくユニットタイプとしてリストCのタイプを見つけました。void空の/下の型の定義によりよく適合するように思えるので、この混乱を見つけます。 void私が知る限り、値は存在しません。 戻り値の型がvoidの関数は、関数が何も返さないため、何らかの副作用しか実行できないことを指定します。 タイプのポインターvoid*は、他のすべてのポインタータイプのサブタイプです。また、void*C との間の変換は暗黙的です。 最後の点voidに、空の型であることの引数としてのメリットがあるかどうかはわかりvoid*ませんvoid。 一方、voidそれ自体は他のすべてのタイプのサブタイプではありません。これは、タイプがボトムタイプであるための要件であると言えます。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

5
O(mn)は「線形」または「2次」成長と見なされますか?
時間の複雑さがO(mn)で、mとnが2つの入力のサイズである関数がある場合、その時間の複雑さを「線形」(mとnの両方で線形であるため)または「2次」(それは2つのサイズの製品だから)?または、他の何か? O(m + n)も線形ですが、はるかに高速であるため、「線形」と呼ぶのは紛らわしいと感じますが、各変数で線形であるため、「二次」と呼ぶのも奇妙だと感じます。

2
再帰関係の変数の変更
この質問は、コンピューターサイエンススタック交換で回答できるため、理論的コンピューターサイエンススタック交換から移行されました。 7年前に移行され ました。 現在、私はアルゴリズムの自己学習(CLRS)を行っており、再発関係を解決するために本で概説している特定の方法が1つあります。 この例では、次の方法を説明できます。再発があるとします T(n )= 2 T(n−−√)+ ログnT(n)=2T(n)+log⁡nT(n) = 2T(\sqrt n) + \log n 最初に、m = lg(n)の置換を行い、それを繰り返しに差し込んで取得します: T(2m)= 2 T(2m2)+ mT(2m)=2T(2m2)+mT(2^m) = 2T(2^{\frac{m}{2}}) + m ここまでは完全に理解しています。この次のステップは、私を混乱させるものです。 彼らは現在、再発を「名前変更」し、S (m )= T (2 m)とし、明らかにS(m )S(m)S(m)S(m )= T(2m)S(m)=T(2m)S(m) = T(2^m) S(m )= 2 S(m / 2 )+ mS(m)=2S(m/2)+mS(m) = 2S(m/2) + …

7
Big Oで定数因子を無視する理由
多くの場合、複雑性に3nなどの定数がある場合、この定数を無視し、O(3n)ではなくO(n)と言います。このような3倍の変化をどうすれば無視できるのか理解できません。あるものは他のものよりも3倍速く変化しています!なぜこの事実を無視するのですか?

2
を満たす2つの関数
二つの機能構築満足します:f,g:R+→R+f,g:R+→R+ f,g: R^+ → R^+ は連続的です。f,gf,gf, g は単調に増加しています。f,gf,gf, g と G ≠ O (F )。f≠O(g)f≠O(g)f \ne O(g)g≠O(f)g≠O(f)g \ne O(f)

4
何をしてい
何をしていlogO(1)nlogO(1)⁡n\log^{O(1)}nの平均? big-O表記は知っていますが、この表記は意味がありません。検索エンジンがこれを正しく解釈する方法がないため、私もそれについて何も見つけることができません。 ちょっとした文脈で、私が見つけた文は「[...] O(logn)O(log⁡n)O(\log n)空間を使用し、アイテムごとに最大で関数を使用する場合、関数[効率的]を呼び出しlogO(1)nlogO(1)⁡n\log^{O(1)}nます。」

2
マスター定理に規則性条件があるのはなぜですか?
Cormenらによるアルゴリズムの紹介を読んでいます。そして、私は73ページから始まるマスター定理の声明を読んでいます。ケース3では、定理を使用するために満たす必要がある規則性条件もあります。 ... 3.場合 f(n)=Ω(nlogba+ε)f(n)=Ω(nlogb⁡a+ε)\qquad \displaystyle f(n) = \Omega(n^{\log_b a + \varepsilon}) いくつかの定数場合、およびε&gt;0ε&gt;0\varepsilon > 0 af(n/b)≤cf(n)af(n/b)≤cf(n)\qquad \displaystyle af(n/b) \leq cf(n) [ これは規則性条件です ] いくつかの定数および十分に大きい場合、..c&lt;1c&lt;1c < 1nnn 規則性条件が必要な理由を誰かに教えてもらえますか?条件が満たされない場合、定理はどのように失敗しますか?

6
間隔内の2つの数値の最大XORを見つける:二次式よりも良いことはできますか?
lllrrr L ≤ I 、最大(I ⊕ J )最大(私⊕j)\max{(i\oplus j)}L ≤ I 、J ≤ Rl≤私、j≤rl\le i,\,j\le r ナイーブアルゴリズムは、考えられるすべてのペアを単純にチェックします。たとえば、ルビーでは次のようになります。 def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j &gt; max) max = i ^ j end end end max end 私感私たちはより良い次より行うことができます。この問題のためのより良いアルゴリズムはありますか?

3
Landauの用語の合計の何が問題になっていますか?
私が書いた ∑i = 1n1私= ∑i = 1nO(1)= O(n)∑私=1n1私=∑私=1nO(1)=O(n)\qquad \displaystyle \sum\limits_{i=1}^n \frac{1}{i} = \sum\limits_{i=1}^n \cal{O}(1) = \cal{O}(n) しかし、私の友人はこれが間違っていると言います。TCSチートシートから、合計がHnHnH_nと呼ばれ、が対数的に増加することがわかりnnnます。したがって、私の限界はあまりシャープではありませんが、必要な分析には十分です。 私は何を間違えましたか? 編集:私の友人は同じ推論で、私たちはそれを証明できると言います ∑i = 1ni = ∑i = 1nO(1)= O(n)∑私=1n私=∑私=1nO(1)=O(n)\qquad \displaystyle \sum\limits_{i=1}^n i = \sum\limits_{i=1}^n \cal{O}(1) = \cal{O}(n) これは明らかに間違っています!ここで何が起こっていますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.