Questions tagged «asymptotics»

关于渐近符号和分析的问题

6
n * log n和n / log n对多项式运行时间
我知道比Θ (n log n )快,但比Θ (n / log n )慢。我很难理解的是如何将Θ (n log n )和Θ (n / log n )与Θ (n f)进行比较,其中0 &lt; f &lt; 1。Θ (n )Θ(n)\Theta(n)Θ (n 对数n )Θ(nlog⁡n)\Theta(n\log n)Θ (n /对数n )Θ(n/log⁡n)\Theta(n/\log n)Θ (n 对数n )Θ(nlog⁡n)\Theta(n \log n)Θ (n /对数n )Θ(n/log⁡n)\Theta(n/\log n)Θ (nF)Θ(nf)\Theta(n^f)0 &lt; f&lt; 10&lt;f&lt;10 < f …


2
非可计算函数会渐近增大吗?
我读到了一些繁忙的海狸数字,以及它们如何比任何可计算函数渐近地增大。为什么会这样呢?是因为忙的海狸功能无法计算吗?如果是这样,那么所有不可计算的函数会​​渐渐地变得比可计算的函数大吗? 编辑: 以下是不错的答案,但我想用简单的英语解释我对它们的理解。 如果有一个可计算函数f的增长快于忙碌的海狸函数,那么这意味着忙碌的海狸函数受f限制。换句话说,图灵机只需要运行f(n)多个步骤即可确定停止问题。由于我们知道暂停问题尚不确定,因此我们最初的预设是错误的。因此,繁忙的海狸功能比所有可计算功能增长得更快。

2
大无限链
首先,让我写大的定义只是为了使事情明确。OOO f(n)∈O(g(n))⟺∃c,n0&gt;0f(n)∈O(g(n))⟺∃c,n0&gt;0f(n)\in O(g(n))\iff \exists c, n_0\gt 0使得0≤f(n)≤cg(n),∀n≥n00≤f(n)≤cg(n),∀n≥n00\le f(n)\le cg(n), \forall n\ge n_0 假设我们有有限数量的函数:令人满意:f1,f2,…fnf1,f2,…fnf_1,f_2,\dots f_n O(f1)⊆O(f2)⋯⊆O(fn)O(f1)⊆O(f2)⋯⊆O(fn)O(f_1)\subseteq O(f_2)\dots \subseteq O(f_n) 通过传递性,我们得到:OOOO(f1)⊆O(fn)O(f1)⊆O(fn)O(f_1)\subseteq O(f_n) 如果我们有无限链,这是否成立?换句话说,吗?O′sO′sO'sO(f1)⊆O(f∞)O(f1)⊆O(f∞)O(f_1) \subseteq O(f_\infty) 我无法想象发生了什么。

3
说“渐近更有效”是什么意思?
当我们说算法渐近地比更有效时,这是什么意思?XXXÿÿY XXX对于所有输入,将是更好的选择。 XXX对于所有输入(小输入除外),都是更好的选择。 XXX对于大型输入以外的所有输入,都是更好的选择。 ÿÿY对于小输入,将是更好的选择。 这个问题的链接在这里。 http://quiz.geeksforgeeks.org/algorithms-analysis-of-algorithms-question-16/ 我以为,一种渐近有效的算法应该适用于所有输入,但是我没有明白“它适用于除小输入以外的所有输入”的原因。

1
两个变量的渐近分析?
对于具有多个变量的函数,如何定义渐近分析(大o,小o,大theta,大theta等)? 我知道Wikipedia文章上有一部分,但是它使用了许多我不熟悉的数学符号。我还发现了以下论文:http : //people.cis.ksu.edu/~rhowell/asymptotic.pdf然而,该论文篇幅很长,提供了渐近分析的完整分析,而不仅仅是给出定义。同样,数学符号的频繁使用使它很难理解。 有人能提供没有复杂数学符号的渐近分析的定义吗?

2
简化n个多选k的复杂度
我有一个递归算法,其时间复杂度相当于从n中重复选择k个元素,我想知道是否可以得到一个更简化的big-O表达式。在我的情况下,可能大于并且它们独立增长。kkknnn 具体来说,我期望一些显式的指数表达式。到目前为止,我能找到的最好的结果是基于Stirling的近似值,所以我可以使用它,但是我想知道是否可以得到更好的东西。O(n!)≈O((n/2)n)O(n!)≈O((n/2)n)O(n!) \approx O((n/2)^n) O((n+k−1k))=O(?)O((n+k−1k))=O(?)O\left({{n+k-1}\choose{k}}\right) = O(?)

2
是否
因此,我有一个问题可以证明一个说法: O(n)⊂Θ(n)O(n)⊂Θ(n)O(n)\subset\Theta(n) ... 我不需要知道如何证明这一点,只是我认为这没有任何意义,我认为应该是。Θ(n)⊂O(n)Θ(n)⊂O(n)\Theta(n)\subset O(n) 我的理解是是所有不比差的函数的集合,而是所有不比n好且不差的函数的集合。ñ Θ (Ñ )O(n)O(n)O(n)nnnΘ(n)Θ(n)\Theta(n) 使用这个,我可以想到一个常数函数的例子,。该函数肯定是的元素,因为当接近足够大的数字时,它的作用不会比差。O (n )n ng(n)=cg(n)=cg(n)=cO(n)O(n)O(n)nnnnnn 然而,同样的功能不会的元素为G中做得比大型 ...然后因为和,然后是Θ (Ñ )ñ ñ 克∈ ø (Ñ )克∉ Θ (Ñ )ø (Ñ )∉ Θ (Ñ )gggΘ(n)Θ(n)\Theta(n)nnnnnng∈O(n)g∈O(n)g \in O(n)g∉Θ(n)g∉Θ(n)g \not\in \Theta(n)O(n)∉Θ(n)O(n)∉Θ(n)O(n)\not\in\Theta(n) 那么问题也许是错的吗?我知道做这个假设很危险,通常我会漏掉一些东西,在这种情况下我什至看不到。 有什么想法吗 ?非常感谢..

1
推断优化类型
在工作中,我的任务是推断一些有关动态语言的类型信息。我将语句序列重写为嵌套let表达式,如下所示: return x; Z =&gt; x var x; Z =&gt; let x = undefined in Z x = y; Z =&gt; let x = y in Z if x then T else F; Z =&gt; if x then { T; Z } else { F; Z } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

2
大师定理不适用?
给定以下递归方程 我们要应用主定理并注意T(n)=2T(n2)+nlognT(n)=2T(n2)+nlog⁡n T(n) = 2T\left(\frac{n}{2}\right)+n\log n nlog2(2)=n.nlog2⁡(2)=n. n^{\log_2(2)} = n. 现在我们检查的前两种情况,即是否ε&gt;0ε&gt;0\varepsilon > 0 或nlogn∈O(n1−ε)nlog⁡n∈O(n1−ε)n\log n \in O(n^{1-\varepsilon}) 。nlogn∈Θ(n)nlog⁡n∈Θ(n)n\log n \in \Theta(n) 这两种情况都不令人满意。因此,我们必须检查第三种情况,即是否 。nlogn∈Ω(n1+ε)nlog⁡n∈Ω(n1+ε)n\log n \in \Omega(n^{1+\varepsilon}) 我认为第三个条件也不满足。但为什么?对于为什么不能在这种情况下应用Master定理,有什么好的解释?

2
如何证明 ?
这是乌迪·曼伯(Udi Manber)书中的一项家庭作业问题。任何提示都很好:) 我必须证明: n (对数3(n ))5= O (n1.2)n(log3⁡(n))5=O(n1.2)n(\log_3(n))^5 = O(n^{1.2}) 我尝试使用本书的定理3.1: F(n )C= O (aF(n ))f(n)c=O(af(n))f(n)^c = O(a^{f(n)})(对于,a&gt; 1)a &gt; 1c &gt; 0c&gt;0c > 0一个&gt; 1a&gt;1a > 1 替代: (日志3(n ))5= O (3日志3(n ))= O (n )(log3⁡(n))5=O(3log3⁡(n))=O(n)(\log_3(n))^5 = O(3^{\log_3(n)}) = O(n) 但是n (对数3(n ))5= Ö (Ñ ⋅ Ñ )= Ö …

1
Big-Oh时间复杂度可以包含多个变量吗?
例如,让我们说我正在做字符串处理,需要对两个字符串进行一些分析。我没有给出关于它们的长度可能最终是多少的信息,因此它们来自两个不同的家庭。将算法的复杂度称为或(取决于我们使用的是朴素算法还是优化算法)是否可以接受?O (n * m )Ø(ñ∗米)O(n * m)O (n + m )O(n+m)O(n + m) 同样,让我们​​假设我们选择的算法实际上需要两个阶段-第一个字符串的设置阶段,这使我们能够处理任意数量的其他字符串而不会产生初始成本。说它具有构造,再进行任意数量的计算,是否被认为合适?O (m )O (n )Ø(ñ)O(n)O (米)Ø(米)O(m) 因为两个计算都是线性的,所以仅将它们称为是否合适?O (n )Ø(ñ)O(n)

2
如何讨论big-O表示法的系数
big-O表示法使用什么表示法来讨论函数系数? 我有两个功能: F(x )= 7 x2+ 4 x + 2f(x)=7x2+4x+2f(x) = 7x^2 + 4x +2 G(x )= 3 x2+ 5 x + 4g(x)=3x2+5x+4g(x) = 3x^2 + 5x +4 显然,这两个函数都是,实际上是Θ (x 2),但这不允许进行进一步的比较。我如何讨论系数7和3。将系数减小到3不会改变渐近复杂度,但仍然对运行时/内存使用产生重大影响。Ø (X2)O(x2)O(x^2)Θ (x2)Θ(x2)\Theta(x^2) 是不是错说是Ø (7 X 2)和G ^是Ø (3 X 2)?是否还有其他考虑系数的符号?或讨论此事的最佳方法是什么?FffO (7 x2)O(7x2)O(7x^2)GggO (3 x2)O(3x2)O(3x^2)

4
在任何实际输入中,低阶项主导运行时间的算法示例?
大O表示法隐藏了常数因子,因此存在一些算法,这些算法对于任何合理的输入大小都不可行,因为项的系数非常大。O(n)Ø(ñ)O(n)nñn 是否存在任何已知的算法,其运行时间为但具有一些低阶项,其数量如此之大,以至于在合理的输入大小下,它完全主导了运行时间?我想在算法课程中使用像这样的算法作为示例,因为它提供了为什么不能使用big-O表示法的充分理由。O(f(n))Ø(F(ñ))O(f(n))o(f(n))Ø(F(ñ))o(f(n)) 谢谢!

1
递归关系的渐近逼近(Akra-Bazzi似乎不适用)
假设算法具有运行时重复关系: T(n)={g(n)+T(n−1)+T(⌊δn⌋)f(n):n≥n0:n&lt;n0T(n)={g(n)+T(n−1)+T(⌊δn⌋):n≥n0f(n):n&lt;n0 T(n) = \left\{ \begin{array}{lr} g(n)+T(n-1) + T(\lfloor\delta n\rfloor ) & : n \ge n_0\\ f(n) & : n < n_0 \end{array} \right. 对于一些常数。假设是多项式,也许是二次的。最有可能在为指数。g n f n0&lt;δ&lt;10&lt;δ&lt;10 < \delta < 1gggnnnfffnnn 如何分析运行时(很好)?主定理和更一般的Akra-Bazzi方法似乎并不适用。ΘΘ\Theta

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.