计算机科学

为学生,研究人员和计算机科学从业者提供的问答

3
为什么选择排序比气泡排序快?
维基百科上写道:“ ...选择排序几乎总是胜过气泡排序和侏儒排序。” 任何人都可以向我解释为什么选择排序比气泡排序更快的原因,尽管它们都具有: 最坏情况下的时间复杂度:Ø( ñ2)O(n2)\mathcal O(n^2) 比较数: Ø( ñ2)O(n2)\mathcal O(n^2) 最佳案例时间复杂度: 气泡排序:O(n )O(n)\mathcal O(n) 选择排序:Ø( ñ2)O(n2)\mathcal O(n^2) 平均案件时间复杂度: 气泡排序:Ø( ñ2)O(n2)\mathcal O(n^2) 选择排序:Ø( ñ2)O(n2)\mathcal O(n^2)

2
为什么C的void类型不同于Empty / Bottom类型?
维基百科以及我发现的其他来源都将C的void类型列为单位类型,而不是空类型。我觉得这很混乱,因为在我看来,它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 

4
有监督的学习与无监督的学习到底有什么区别?
我正在尝试了解聚类方法。 我想我明白的是: 在监督学习中,分配给类别/标签的数据在计算之前是已知的。因此,使用标签,类或类别来“学习”对于那些集群真正重要的参数。 在无监督学习中,将数据集分配给段,而无需了解聚类。 这是否意味着,如果我什至不知道哪个参数对于细分至关重要,我应该喜欢监督学习?

1
顺序前,顺序后和顺序中的哪些组合是唯一的?
我们知道订单, post L(x) => [x] post N(x,l,r) => (post l) ++ (post r) ++ [x] 和预购 pre L(x) => [x] pre N(x,l,r) => [x] ++ (pre l) ++ (pre r) 和有序遍历 顺序化。 in L(x) => [x] in N(x,l,r) => (in l) ++ [x] ++ (in r) 即使我们假定成对的不同键/标签,也可以很容易地看出它们都不是唯一描述给定的树。 为此可以使用这三种的哪些组合,哪些不能使用? 肯定的答案应该包括(有效的)算法来重建树,并证明(正确的)原因。否定答案应提供反例,即具有相同表示形式的不同树。

1
给定长度的常规语言中单词数量的渐近性
对于常规语言,令为长度为中的单词。使用约旦规范形式(应用于的某些DFA的无注释转换矩阵),可以证明对于足够大的, 其中是复数多项式,是复数“特征值”。(对于小,我们可能具有形式的附加项,其中如果且为且Ç Ñ(大号)大号ñ 大号Ñ Ç Ñ(大号)= ķ Σ我= 1个 P 我(Ñ )λ Ñ 我,P 我λ 我 Ñ Ç ķ [ Ñ = ķ ] [ Ñ = ķ ] 1 ñ = ķ 0大号LLCñ(大号)cn(L)c_n(L)大号LLñnn大号LLñnnCñ(L )= ∑我= 1ķP一世(n )λñ一世,cn(L)=∑i=1kPi(n)λin, c_n(L) = \sum_{i=1}^k P_i(n) \lambda_i^n, P一世PiP_iλ一世λi\lambda_iñnnCķ[ n = k ]Ck[n=k]C_k[n=k][ n = …

1
是否有支持这些字符串操作的“字符串堆栈”数据结构?
我正在寻找一种数据结构,该结构可在字符集上存储一组字符串,该字符集能够执行以下操作。我们将为存储字符串集合的数据结构。D(S )SΣΣ\SigmaD(S)D(S)\mathcal{D}(S)SSS Add-Prefix-Set在:给定一组(可能为空)字符串,其大小由一个常数限制,而字符串长度由一个常数限制,则返回。这两个边界常量都是全局的:对于所有输入它们都是相同的。Ť d({ 吨小号|吨∈ Ť ,小号∈ 小号} )ŤD(S)D(S)\mathcal{D}(S)TTTD({ts | t∈T,s∈S})D({ts | t∈T,s∈S})\mathcal{D}( \{ t s\ |\ t \in T, s \in S\} )TTT Get-Prefixes在:返回。请注意,只要我可以在时间内枚举其内容,我就不介意此集合使用什么结构。{ a | 一个小号∈ 小号,一个∈ Σ } Ö (|Σ |)D(S)D(S)\mathcal{D}(S){a | as∈S,a∈Σ}{a | as∈S,a∈Σ}\{ a \ | \ as \in S, a \in \Sigma \}O(|Σ|)O(|Σ|)O(|\Sigma|) Remove-Prefixes在D(S)D(S)\mathcal{D}(S):返回D({s …

4
定点组合器(Y组合器)的清晰直观的推导?
(无类型)lambda演算()中的定点组合器FIX(aka Y组合器)定义为:λλ\lambda FIX≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))\triangleq \lambda f.(\lambda x. f~(\lambda y. x~x~y))~(\lambda x. f~(\lambda y. x~x~y)) 我了解它的目的,并且可以很好地跟踪其应用程序的执行。我想了解如何从第一原理中得出FIX。 这是我尝试自己导出时所得到的: FIX是一个函数:FIX ≜λ…≜λ…\triangleq \lambda_\ldots FIX使用另一个函数fff使其递归:FIX ≜λf.…≜λf.…\triangleq \lambda f._\ldots 函数f的第一个参数是函数fff的“名称”,用于打算递归应用程序的地方。因此,f的第一个参数的所有出现fff都应由一个函数替换,并且该函数应预期f的其余参数fff(假设f带有fff一个参数):FIX ≜λf.…f (λy.…y)≜λf.…f (λy.…y)\triangleq \lambda f._\ldots f~(\lambda y. _\ldots y) 这是我不知道如何在推理中“迈出一步”的地方。小椭圆表示我的FIX缺少了什么(尽管我只能通过将其与“真实” FIX进行比较来知道)。 我已经阅读了Types and …

3
测量SAT实例的难度
给定一个SAT实例,我希望能够估计解决该实例的难度。 一种方法是运行现有的求解器,但这种方法无法达到估算难度的目的。第二种方法可能是查看子句与变量的比率,就像在random-SAT中进行相变一样,但是我确信存在更好的方法。 给定一个SAT实例,是否有一些快速的试探法来衡量难度?唯一的条件是,这些启发式方法要比在实例上实际运行现有的SAT求解器快。 相关问题 哪些SAT问题很容易?在cstheory.SE 该问题询问有关易于处理的实例集。这是一个类似的问题,但并不完全相同。我对一种启发式方法非常感兴趣,该启发式方法对单个实例做出了某种半智能的猜测,以确定该实例是否很难解决。

2
计数二叉树
(我是一名具有一定数学背景的学生,我想知道如何计算特定种类的二叉树的数量。) 综观对维基百科页面二叉树的,我已经注意到了这个说法,即大小的扎根二叉树的数量应该是这样的加泰罗尼亚号码: C_N = \ dfrac {1} {N + 1} {2N \选择N}nnnCn=1n+1(2nn)Cn=1n+1(2nn)C_n = \dfrac{1}{n+1}{2n \choose n} 但是我不明白我自己怎么能得出这样的结果?有找到这种结果的方法吗? 现在,如果不考虑子树的顺序(左,右)?例如,从我的角度来看,我认为这两棵树是相同的: /\ /\ /\ /\ 是否可以应用类似的方法来计算这些对象中有多少个恰好具有nnn节点?

4
如何在线性时间内找到超级巨星?
考虑有向图。当且仅当无法从该节点到达其他节点,但所有其他节点都具有的边缘时,我们才称该节点为超级星。正式地:vvvv vvv \qquad \displaystyle v 巨星 :⟺ ö ù 吨d ë 克(v )= 0 ∧ 我Ñ d ë 克(v )= ñ - 1 superstar :⟺outdeg(v)=0∧indeg(v)=n−1 \text{ superstar } :\Longleftrightarrow \mathrm{outdeg}(v) = 0 \land \mathrm{indeg}(v) = n-1 其中ñnn为图中的节点数。例如,在下图中,未填充的节点是超级明星(其他节点不是)。 [ 来源 ] 您如何在O (n )O(n)\mathcal{O}(n)时间中识别有向图中的所有超级明星?可以从通常的候选项中选择合适的图形表示形式;请不要使用将问题的复杂性转移到预处理的表示形式。 无法做出有关密度的假设。我们不认为图表包含超级巨星;如果没有,则算法应识别出它。 符号:Ò ù 吨d È 克outdeg\mathrm{outdeg}是一个节点的传出边缘的数目,我Ñ d …

6
从一组对中生成组合而无需重复元素
我有一对。每对都具有(x,y)的形式,使得x,y属于范围内的整数[0,n)。 因此,如果n为4,那么我有以下几对: (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) 我已经有一对了。现在,我必须使用n/2对构建一个组合,这样就不会重复任何整数(换句话说,每个整数在最终组合中至少出现一次)。以下是正确和不正确组合以更好地理解的示例 1. (0,1)(1,2) [Invalid as 3 does not occur anywhere] 2. (0,2)(1,3) [Correct] 3. (1,3)(0,2) [Same as 2] 一旦我有了配对,有人可以建议我一种生成所有可能组合的方法。


7
使用BFS / DFS查找树的直径的算法。为什么行得通?
该链接提供了一种使用BFS / DFS查找无向树的直径的算法。总结: 在图中的任何节点上运行BFS,记住您最后发现的节点。记住最后发现的节点v,从u运行BFS。d(u,v)是树的直径。 为什么行得通? 第2页,这提供了一个理由,但它是混淆。我引用了证明的初始部分: 在图中的任何节点上运行BFS,记住您最后发现的节点。记住最后发现的节点v,从u运行BFS。d(u,v)是树的直径。 正确性:令a和b为任意两个节点,使得d(a,b)是树的直径。从a到b有一条独特的路径。令t为BFS在该路径上发现的第一个节点。如果从s到u 的路径p1p1p_1和从a到b的p2p2p_2路径不共享边,则从t到u的路径包括s。所以 d(t,u)≥d(s,u)d(t,u)≥d(s,u)d(t,u) \ge d(s,u) d(t,u)≥d(s,a)d(t,u)≥d(s,a)d(t,u) \ge d(s,a) ....(更多不平等现象随之而来。) 不平等对我来说没有意义。



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.