计算机科学

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

3
具有语法
谁能启发我,为什么尝试回溯产生式和(按顺序)的带有回溯的递归下降解析器不能识别语法形成的语言。小号→ 一个一个小号→ 一个小号一个| 一个一个小号→ 一个小号一个小号→一个小号一个S \rightarrow aSa小号→ 一个一个小号→一个一个S \rightarrow aa小号→ 一个小号一个| 一个一个 小号→一个小号一个 | 一个一个S \rightarrow aSa\ |\ aa 它似乎只能解析语言单词。{ a2ñ | Ñ≥1 }{a2ñ | n≥1个}\{a^{2^n}\ |\ n \ge 1 \} 我使用具有生产规则的ABNF Parser Generator生成了这样的解析器,例如,S = "a" S "a" / "aa"解析器无法识别单词aaaaaa。 我希望它使用生产,直到解析树的终端节点从7左边开始串联的,然后去分析树选择生产小号→ 一个一个来代替,直到树看起来像这样:小号→ 一个S一个小号→一个小号一个S \rightarrow aSaa小号→ 一个一个小号→一个一个S \rightarrow aa S / …

1
从一组基本语言和闭包属性构造所有无上下文语言?
查看正则表达式的一种方法是对以下事实的结构性证明:可以通过从少量语言开始并通过一组固定的较小闭包属性来组合正则语言来构造正则语言。具体来说,如果我们以空语言,包含空字符串的语言以及所有单字符字符串的语言开始,则可以使用并集,串联和Kleene星号来组合所有可能的常规语言。 是否有一组基本语言和闭包属性可用于生成所有且仅上下文无关的语言?(要澄清:我不是问您是否可以为所有CFL编写正则表达式,我知道这是不可能的。相反,我想知道是否有一种方法可以基于CFL为CFL设计类似正则表达式的框架相同的基本原则。)

2
测量FSA语法之间“相似性”的方法?
我正在使用一种模式匹配算法,该算法生成一个非循环的有限状态自动机,该自动机接受给定的文本字符串及其所有子字符串。FSA算法正在音乐流(例如MIDI数据)的符号表示上运行。音乐流已经过预处理,可以将每首歌曲分为未标记的“段”。一个FSA被用于每首歌曲的每个段中产生:如果我有歌曲,各自分成ÿ段,我会Ñ ⋅ ý单独的FSA。nnnyyyn⋅yn⋅yn \cdot y 我想将每个部分的FSA与我的语料库中的其他FSA进行比较。最终目标将是在相似性空间内进行聚类,并根据其构造指标的相似性提出细分的“类别”。因此,特别令人感兴趣的是每个FSA定义的语法(大致对应于片段中音乐内容的某些组成部分)。是否有一些技巧可以比较这样的东西?尽管可能存在更好/更有效的技术,但我想到了KL散度(例如,使用它比较与给定FSA相关联的字符串的分布)。 同样,如果这个问题是(1)轻而易举的或(2)表示有更深的误解或(3)在其他地方回答了,则表示歉意。我是一个真正的小伙子,伙计们!

2
乘法
我一直在寻找在这里,我注意到两个乘法的最佳运行 -Bits数是Ø (ñ ⋅ 登录ň ⋅ 2 Ø (日志* ñ ),但我可以很容易发现的算法,在运行Ø (ñ ⋅ 登录n )。nñnO(n⋅logn⋅2O(log∗n)Ø(ñ⋅日志⁡ñ⋅2Ø(日志∗⁡ñ)O(n\cdot \log n \cdot 2^{O(\log^* n)}O(n⋅logn)Ø(ñ⋅日志⁡ñ)O(n\cdot \log n) 毕竟,我们知道如何在O (n log n )运行时中将两个多项式相乘。但是多项式相乘与两个n位数字相乘相同。因此,我们有一种算法将O (n log n )中的两个n位数字相乘。现在可能发生的唯一问题是进位,但是在每个阶段中,我们都可以在O (n )时间内解决此问题,只需移动最右边的位及其左邻居,直到结束。也就是说,我们的运行时间应保持Ø (ñ ⋅ 日志ñnñnO(nlogn)Ø(ñ日志⁡ñ)O(n \log n)nñnnñnO(nlogn)Ø(ñ日志⁡ñ)O(n \log n )O(n)Ø(ñ)O(n)。O(n⋅logn)Ø(ñ⋅日志⁡ñ)O(n \cdot \log n) 那我做了一个新的(而且很明显)的发现吗?还是维基百科页面过时了?也许我有一些错误?

4
从不同的棍子上砍下相等的棍子
您有个任意长度的棍子,不一定是整数。ññn 通过切割一些木棍(一次切割可切割一根木棍,但我们可以根据需要进行多次切割),您希望得到木棍,使得:k &lt; nķ&lt;ñk<n 所有这些棒的长度相同;ķķk 所有的至少与其他所有条一样长。ķķk 请注意,执行切割后,我们获得了。Çn + Cñ+Cn + CCCC 您将使用哪种算法以使必要切割的次数最少?那是什么号码? 例如,取和任何。可以使用以下算法:Ñ ≥ 2k = 2ķ=2k=2Ñ ≥ 2ñ≥2n\geq 2 按长度的降序对摇杆进行排序,以使。大号1个≥ 大号2≥ ... ≥ 大号ñ大号1个≥大号2≥…≥大号ñL_1\geq L_2 \geq \ldots \geq L_n 如果则将木棒#1切成两等份。现在有两个长度为棒,其长度至少等于其余的棒。大号1 / 2 2 ... Ñ大号1个≥ 2 大号2大号1个≥2大号2L_1\geq 2 L_2大号1个/ 2大号1个/2L_1 / 22 … n2…ñ2 \ldots n 否则(),将木棒#1切成两个不等长的和。现在有两个长度为棒,长度大于,其他两个棒为。L 2 L …

1
查找最长斐波那契子串的幼稚算法的复杂性
给定两个符号和b,我们如下定义第k个斐波那契字符串:一个a\text{a}bb\text{b}ķkk F(k )= ⎧⎩⎨b一个F(ķ - 1 )⋆ ˚F(k − 2 )如果 k=0如果 k=1其他F(k)={bif k=0aif k=1F(k−1)⋆F(k−2)else F(k) = \begin{cases} \text{b} &\mbox{if } k = 0 \\ \text{a} &\mbox{if } k = 1 \\ F(k-1) \star F(k-2) &\mbox{else} \end{cases} 与表示字符串连接。⋆⋆\star 因此,我们将拥有: F(0 )= bF(0)=bF(0) = \text{b} F(1 )= 一个F(1)=aF(1) = \text{a} F(2 …

1
为什么使用超线程会导致性能下降
我在不同的地方,如阅读此,超线程导致性能下降。 我无法弄清楚超线程导致退化的原因或原因。 为什么这样,即使在超线程允许OS使用免费资源的情况下,降级也会发生。 尽管基准测试确实表明超线程是罪魁祸首,但是有人可以向我解释其原因。 谢谢

2
没有自指的暂停问题
在停止问题中,我们感兴趣的是是否有图灵机可以判断给定的图灵机是否在给定的输入上停止。通常,假设存在这样的开始证明。然后,我们考虑将限制为本身,然后通过使用对角线参数的实例得出矛盾的情况。我很感兴趣,如果我们给出的保证,证明将如何发展?关于诺言,那在功能上等同于呢?中号我Ť 我中号我≠ 中号我≠ 中号“ 中号”中号ŤTT中号MM一世iiŤTT一世ii中号MMi ≠ Mi≠Mi \not = Mi≠M′i≠M′i \not = M^\primeM′M′M^\primeMMM

2
将意味着?
如果则层次结构将崩溃至第二级(通过Karp-Lipton定理)。但是和呢?RP=NPRP=NP\sf RP = NPNPNP\sf NPcoNPcoNP\sf coNP 我试图证明包含(如果则另一个方向是微不足道的),但无济于事,而且我甚至不确定这是真的。BPPBPP\sf BPPNPNP\sf NPRP=NPRP=NP\sf RP = NP 你怎么看?

1
计算大整数的位数
给定二进制表示的两个整数和n,计算x n的位大小的复杂度是多少?xxxnnnxnxnx^n 这样做的一种方式是计算通过计算的近似日志2(X )以足够的精度。看来可以在O (M (k )log k )中完成以k位精度计算log 2(x ),其中M (1+⌊log2(xn)⌋=1+⌊nlog2(x)⌋1+⌊log2⁡(xn)⌋=1+⌊nlog2⁡(x)⌋1+\lfloor \log_2(x^n)\rfloor=1+\lfloor n\log_2(x)\rfloorlog2(x)log2⁡(x)\log_2(x)log2(x)log2⁡(x)\log_2(x)kkkO(M(k)logk)O(M(k)log⁡k)O(M(k)\log k)是计算长度为 k的两个整数的乘积所需的时间。如果 s是 x和 n 的位大小的边界(如果我没有出错),这将产生一个复杂度大约为 O (s log 2 s )的(不是特别简单的)算法。M(k)M(k)M(k)kkkO(slog2s)O(slog2⁡s)O(s\log^2 s)sssxxxnnn 我们可以击败,其中s是x和n的大小(如果它们具有可比较的大小)?是否有一种简单的算法可以使这种复杂性更好?O(slog2(s))O(slog2⁡(s))O(s\log^2(s))sssxxxnnn 注意:我对诸如图灵机之类的理论模型的复杂性感兴趣。

2
这个经典的益智书籍游戏NP是否完整?
有一个经典的益智书籍游戏,与填字游戏非常相似,不同之处在于给出了单词列表,然后给出了由单位正方形组成的正方形板,其中一些正方形像填字游戏一样被涂黑,并且一些方块中已经预先写了一个字母。目的是将列表中的每个单词一次性写入拼图中一次,其中每个单词在水平(从左到右)或垂直(自上而下)被写入未涂黑的连续方块中,并且在您写入一个单词时,字词结尾两侧的两个正方形必须涂黑或从黑板上除掉。同样对于预先写成某些方块的字母,与这些方块重叠的单词也必须遵守预先写好的字母。ñ× NN×NN \times N 现在,如果我们假设单词的大小是固定的,那么我们将决定是否可以使用列表上的每个单词,一次且仅一次NP完全问题,如果董事会的边长是不固定?

1
如果我们使用图灵缩减,那么复杂度类是什么样的?
为了进行诸如NP完整性之类的推理,我们通常使用多对一的缩减(即Karp缩减)。这导致了这样的图片: (根据标准推测)。我确定我们都对这种事情很熟悉。 如果我们使用图灵折减法(即Cook折算法),我们会得到什么印象?图片如何变化? PñPPNPP^{NP}ñPNPNPÇ Ò ÑPcoNPcoNPPñPPNPP^{NP}ñPNPNP P⊂PNP⊂PH⊂PSPACEP⊂PNP⊂PH⊂PSPACEP \subset P^{NP} \subset PH \subset PSPACE C0=PC0=PC_0=PC1=PNPC1=PNPC_1=P^{NP}C2=?C2=?C_2=?PHPHPHP≠NPP≠NPP \ne NP 相关:定义NPC的多对一减少与图灵减少。该文章解释说,我们使用Karp约简的原因是它为我们提供了更细粒度,更丰富,更精确的层次结构。本质上,我想知道如果使用图灵归约法,层次结构将是什么样子:更粗,更不丰富,更不精确的层次结构会是什么样子。

4
从边按点距离加权的图形中恢复点嵌入
假设我给您一个带有加权边的无向图,并告诉您每个节点都对应于3d空间中的一个点。每当两个节点之间有一条边时,该边的权重即为点之间的距离。 您的目标是在仅提供可用距离(以边权重表示)的情况下重建点的相对位置。例如,如果我给您,那么您知道这些点是四面体的顶点。您不知道它相对于原点的位置,位置或方向,或者是否已被镜像,但是您可以知道它是四面体。d0 ,1=d0,2=d0,3=d1,2=d1,3=d2,3= 1d0,1个=d0,2=d0,3=d1个,2=d1个,3=d2,3=1个d_{0,1} = d_{0,2} = d_{0,3} = d_{1,2} = d_{1,3} = d_{2,3} = 1 通常,如果我给您所有的边长,问题很容易解决。只需任意选择一个点在,然后选择一个相邻点并将其放置在,然后将一个公共邻居三角剖分到XY上平面,然后将最终的公共邻居三角剖分到半空间并打破了其余的对称性(假设您没有选择退化点)。您可以使用这四个点对所有其余的点进行三角剖分。(0 ,0 ,0 )p 1(d 0 ,1,0 ,0 )p 2 p 3 ž &gt; 0p0p0p_0(0,0,0)(0,0,0)(0,0,0)p1p1个p_1(d0,1,0,0)(d0,1个,0,0)(d_{0,1},0,0)p2p2p_2p3p3p_3ž&gt; 0ž&gt;0z > 0 另一方面,当缺少一些边缘长度时,可能无法恢复嵌入。例如,如果有一个顶点在切割时使图形断开连接,那么如果移除了该顶点,它将分离的两个组件可能会相对摆动。 这就提出了问题: 找到解决方案的价格是多少? 您如何确定解决方案是否唯一,直到平移/旋转/镜像?3连通性足够吗?必要? 什么样的条件使问题变得微不足道? 如果我不保证边缘权重实际上对应于点距sin 3d,那么确定是否完全可以嵌入的代价是多少?

2
Lambda演算的组合解释
根据彼得·塞林格(Peter Selinger)的观点,拉姆达微积分是代数(PDF)。在本文的开头,他说: 众所周知,lambda演算的组合解释是不完善的,因为它不满足:在这种解释下,并不意味着\ lambda xM = \ lambda xN(Barendregt,1984)。ξξξM=NM=NM = Nλx.M=λx.Nλx.M=λx.N\lambda x.M = \lambda x.N 问题: 在这里意味着什么等价? 给定等效性的定义,隐含的反例是什么?

2
等价关系覆盖问题(在图论中)
有限顶点集上的等价关系可以由无向图表示,该无向图是团体的不相交的并集。顶点集表示元素,边表示两个元素是等效的。 如果我有一个图形和图表g ^ 1,... ,g ^ ķ,我们说摹被覆盖摹1,... ,g ^ ķ如果设定的边缘摹等于套边的工会摹1,… ,G k。G 1,... ,G k的边集不需要是不相交的。请注意,任何无向图GGGGG1个,… ,GķG1个,…,GķG_1,\dots,G_kGGGG1个,… ,GķG1个,…,GķG_1,\dots,G_kGGGG1个,… ,GķG1个,…,GķG_1,\dots,G_kG1个,… ,GķG1个,…,GķG_1,\dots,G_kGGG 可以由有限数量的等价关系覆盖(即,团簇图的不交集并集)。 我有几个问题: 关于覆盖图所需的最小等价关系数,该怎么说呢?GGG 我们如何计算这个最小数字? 我们如何计算G的明确最小覆盖率GGG,即一组大小最小且覆盖的等价关系?GGG 除了分区逻辑(子集逻辑的对偶)之外,这个问题是否还有其他应用? 这个问题的名称是否成立? 鉴于评论中指出的各种误解,以下是一些图片来说明这些概念。如果您有一个更易于理解的术语的想法(而不是“覆盖”,“等价关系”,“团体的不相交并集”和“不一定相交”边集并集),请随时告诉我。 这是一张图的图片及其一个等价关系: 这是一张图形的图片以及覆盖它的两个等价关系: 很明显,至少需要两个等价关系。 这是一张图形的图片以及覆盖其中的三个等价关系: 不太明显至少需要三个等价关系。子集逻辑对偶的引理1.9 可用于证明这是正确的。将这个引理推广到具有两个以上输入的nand运算是此问题的动机。

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.