计算机科学

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

2
Hidoku NP是否完整?
Hidoku是一个网格,其中包含一些从1到预填充整数。目的是在网格中找到连续整数(从1到)的路径。更具体地讲,网格的每个像元必须包含从1到的不同整数,并且值每个像元必须具有值(也可以是对角线)的相邻像元。n 2 n 2 n 2 z ≠ n 2 z + 1n×nn×nn \times nn2n2n^2n2n2n^2n2n2n^2z≠n2z≠n2z ≠ n^{2}z+1z+1z + 1 NP是否难以确定给定的Hidoku是否可解决?可以使用什么减少量? 编辑:根据评论,我给出一点澄清。给定一个单元格网格,其中一些单元格已经包含值(整数从1到n²)。我们必须使用从1到整数填充所有剩余的像元,以使没有两个像元具有相同的值,并且每个值都具有一个值z +1的邻居。也就是说,在填充单元格之后,我们必须找到路径1,2,3,\ cdots,n ^ 2。在网格中,逻辑上访问每个单元。n2n2n^2z≠n²z≠n²z ≠ n²z+1z+1z + 11,2,3,⋯,n21,2,3,⋯,n21, 2, 3,\cdots, n^2 Hidoku的例子是http://www.janko.at/Raetsel/Hidoku/018.c.gif。一个已经解决的Hidoku是http://diepresse.com/images/uploads/3/f/7/586743/spectrumsommerraetsel_7august_hidoku_schwer_loesung20100810172340.gif,您可以在其中看到我所指的路径。


3
使用后缀数组计算两个字符串的最长公共子字符串
在学习了如何以复杂度构建后缀数组之后,我对发现后缀数组的应用感兴趣。其中之一是在时间中找到两个字符串之间最长的公共子字符串。我在互联网上发现以下算法:O(N)O(N)O(N)O(N)O(N)O(N) 将两个字符串和合并为一个字符串AAABBBABABAB 计算的后缀数组ABABAB 计算(最长公共前缀)数组LCPLCPLCP 答案是最大值LCP[i]LCP[i]LCP[i] 我尝试实现它,但是由于没有说很多实现细节(即,在连接字符串时,是否应该在它们之间加上一个特殊字符()?),我的代码在许多测试用例上均失败了。有人可以详细说明一下该算法吗?AcBAcBAcB 提前致谢。 注意:我不保证该算法的正确性;我在博客上找到了它,但不确定它是否有效。如果您认为它不正确,请提出另一种算法。

2
这个显然是O(n lg n)乘法算法的错误在哪里?
最近一篇有关找到三个等距间隔的难题的博客文章将我引向一个stackoverflow问题,该问题的最高答案声称是在O(n lg n)时间内完成的。有趣的是,该解决方案涉及对多项式求平方,并参考描述了如何在O(n lg n)时间内进行的论文。 现在,多项式相乘实际上与数字相乘。唯一真正的区别是缺少携带。但是...进位也可以在O(n lg n)时间内完成。例如: var value = 100; // = 0b1100100 var inputBitCount = value.BitCount(); // 7 (because 2^7 > 100 >= 2^6) var n = inputBitCount * 2; // 14 var lgn = n.BitCount(); // 4 (because 2^4 > 14 => 2^3) var c = …


2
柜台计算机可以识别哪些语言?
在计算理论课程中,通常显示具有两个或更多计数器的计数器机器等效于图灵机。但是,我还没有看到对一台计数器可以识别哪些语言的正式分析。这些语言是否等同于上下文无关的语言(也许是通过某种巧妙的构造将它们与PDA相关联),还是它们是完全不同的一类语言?

1
在有向图中找到简单循环
对我来说,这个问题看起来很有趣。它将在有向图中找到一个简单的循环(即没有重复节点的循环)。 我的解决方案是这样的,即此图是一个案例问题: 我知道图形中有一个循环,当您可以在深度优先搜索中找到“后边缘”时(在DFSTree的图片中虚线了),我可以确定几个循环,但不能确定所有,简单的周期。因为,有向植物非常重要,所以从一个周期开始,即(0123)!=(0321) 我正在考虑为每个具有后端的节点创建dfs,但是我不确定,目前尚不清楚。所以,我问你,如果你指导我。谢谢!。 这是我针对案例问题的简单循环计数。

1
克努斯,德布赖恩和赖斯(1972)的“种植平面树的平均高度”
我试图仅通过基本手段(没有生成函数,没有复杂分析,没有傅立叶分析)来获得标题中的经典论文,尽管精度要低得多。简而言之,我“仅”要证明具有节点的树的平均高度(即,从根到叶的最大节点数)满足。hnhnh_nnnnhn∼πn−−−√hn∼πnh_n \sim \sqrt{\pi n} 概述如下。令为高度小于或等于的树数(对于所有,约定),B_ {nh}为n个节点的树数高度大于或等于h + 1(即B_ {nh} = A_ {nn}-A_ {nh})。然后h_n = S_n / A_ {nn},其中S_n是有限和 S_n = \ sum_ {h \ geqslant 1} h(A_ {nh}-A_ {n,h-1})= \ sum_ {h \ geqslant 1 } h(B_ {n,h-1}-B_ {nh})= \ sum_ {h \ geqslant 0} B_ {nh}。 众所周知,A_ {nn} = …

3
图灵的完整计算能力
一位教授在一次演讲中提到,现代计算机没有图灵机那么多的计算能力,因为它们没有无限的内存,并且由于没有计算机可以拥有无​​限的内存,因此图灵机是无法达到的,仅代表上限计算。因此,是否有措施或定义超出我们的计算能力范围的问题(或问题类别)?

6
会有一个完美的国际象棋算法吗?
当前的国际象棋算法根据玩家的移动和对手的移动在可能的路径树上向下移动约1或2个级别。假设我们具有计算能力,可以开发一种预测象棋游戏中对手所有可能动作的算法。该算法具有对手在任何给定时刻可以采取的所有可能路径的算法,具体取决于玩家的移动。有没有一种完美的国际象棋算法,永不丢失?还是永远赢的算法?我的意思是说,理论上可以预测所有可能动作的人必须能够找到一种方法来击败每一步,或者如果某个人肯定会导致他失败,那么他只能选择一条不同的道路..... 编辑-我的问题确实是什么。假设我们具有可以发挥最佳性能的完美算法的计算能力。当对手使用相同的最佳算法时会发生什么?这也将适用于所有2个具有有限数量(无论是否大)移动的玩家游戏。会有永远赢的最佳算法吗? 个人定义:最优算法是永远赢的完美算法(不是永远不会输的赢,而是永远赢的赢的算法)

2
为什么主定理中存在规则性条件?
我一直在阅读Cormen等人的算法简介。并且我正在阅读从第73页开始的Master定理的陈述。在情况3中,使用定理还需要满足一个正则条件: ... 3.如果 F(n )= Ω (n日志ba + ε)F(ñ)=Ω(ñ日志b⁡一种+ε)\qquad \displaystyle f(n) = \Omega(n^{\log_b a + \varepsilon}) 对于一些恒定,如果ε &gt; 0ε&gt;0\varepsilon > 0 一个˚F(Ñ / b )≤ Ç ˚F(n )一种F(ñ/b)≤CF(ñ)\qquad \displaystyle af(n/b) \leq cf(n) [ 这是规律性条件 ] 对于某些常数以及对于所有足够大的,则..Ñc &lt; 1C&lt;1c < 1ññn 有人可以告诉我为什么需要规律性条件吗?如果不满足条件,定理将如何失败?

2
减量的类型和相关的硬度定义
设A是还原为B,即。因此,接受的Turing机器可以访问的oracle 。让图灵机接受是和为oracle是。减少的类型:甲乙甲中号甲乙ö 乙一≤ 乙A≤BA \leq B一种AA乙BB一种AA中号一种MAM_{A}乙BBØ乙OBO_{B} 图灵缩减:可以对进行多次查询。 ö 乙中号一种中号一种M_{A}Ø乙Ø乙O_{B} 卡普减少:也称为“多项式时间图灵减少”:的输入必须以多时构造。此外,对的查询数量必须由多项式来限制。在这种情况下:。 O B P A = P BØ乙Ø乙O_{B}Ø乙Ø乙O_{B}P一种= P乙P一种=P乙P^{A} = P^{B} 图灵多减:在最后一步只能对进行一次查询。因此,oracle响应无法修改。但是,构造的输入所花费的时间不必由多项式来限制。等效地:(表示多减一) ö 乙 ö 乙 ≤ 米中号一种中号一种M_{A}Ø乙Ø乙O_{B}Ø乙Ø乙O_{B}≤米≤米\leq_{m} 一≤米乙一种≤米乙A \leq_{m} B如果一个可计算函数,使得。˚F :Σ * →交通Σ * ˚F (X )∈ 乙∃∃\existsF:Σ∗→ Σ∗F:Σ∗→Σ∗f: \Sigma^{\ast} \to \Sigma^{\ast}F(X )∈ 乙⟺X ∈ 一F(X)∈乙⟺X∈一种f(x) \in B \iff x\in …

4
给定一组集合,从每个集合中找出包含至少一个元素的最小集合
给定一组套,我想找到一套,使得每一套在包含至少一个元素。我还希望在满足此标准的同时包含尽可能少的元素,尽管可能存在不止一个具有此属性的最小(解决方案不一定是唯一的)。S小号\mathbf{S}S S M M MM中号MS小号SS小号\mathbf{S}M中号MM中号MM中号M 作为一个具体的例子,假设一套是一组的国旗,并为每个标志在,元素是在该国的国旗使用的颜色。美国将具有而摩洛哥将具有。那么将是一组颜色,其属性是每个国旗至少使用一种颜色。(奥林匹克颜色蓝色,黑色,红色,绿色,黄色和白色是这种的示例,至少在1920年是这样。) S S S = { r e dS小号\mathbf{S}S小号SS小号\mathbf{S}S = { r e d ,g r e e n } M M MS={red,瓦特ħ 我吨e,blue}小号={[RËd,wH一世ŤË,b升üË}S = \{red, white, blue\}S={red,g[Reen}小号={[RËd,G[RËËñ}S = \{red, green\}M中号MM中号MM中号M 这个问题有通用名称吗?是否有公认的“最佳”算法来查找集合?(我对解决方案本身更感兴趣,而不是对计算复杂度进行优化。)M中号M

4
是否有用于证明层次结构的存储库?
我是自学证明的助手,因此决定开始一些基本的证明,然后逐步发展。由于证明基于其他证明,因此形成了层次结构,是否存在证明层次结构的存储库? 我知道我可以选择一个特定的证明助手并分析其库以提取其层次结构,但是,如果我想在链中找到下一个证明以进行证明,那么当它不在库中时,我将无法。 在我的脑海中,我描绘了所有可以使用英语语句表达的已知数学证明(而不是使用图片的证明)的图形(可能是DAG)。这将是主地图(从一个点开始并通过中间点移动到另一点的地图),对于特定的校对助手,将拥有一个主地图的子图。然后,如果要使用在母版上而不在子图上找到的校对助手创建校对,则可以通过比较两个图形来了解为校对助手创建缺少的校对所需的工作。 我知道数学证明不一定很容易转换为与证明助手一起使用,但是对做什么的总体了解比根本没有要好得多。 同样,通过拥有主地图,我可以查看是否存在从一个点到另一个点的多条路径,并选择一条更适合特定证明助手的路径。 编辑 在搜索中,我发现了一些类似的数学函数。我没有在NIST上找到要证明的东西

2
为什么图灵完整性是正确的?
我正在使用数字计算机编写此消息。这种机器有一个属性,如果你仔细想想,其实是相当显着的:它是一台机器,如果适当地编程,可进行任何可能的计算。 当然,一种或另一种计算机都可以追溯到上古。人们已经建造了用于执行加法和减法(例如算盘),乘法和除法(例如计算尺)的机器,以及更多领域特定的机器,例如用于行星位置的计算器。 关于计算机的惊人之处在于它可以执行任何计算。完全没有任何计算。所有这些都无需重新连接机器。今天,每个人都认为这个想法是理所当然的,但是如果您停下来考虑一下,那么这样的设备是可能的。 我有两个实际问题: 人类什么时候才知道这样的机器是可能的?是否曾经有过关于是否可以做到的严重怀疑?这是什么时候解决的?(特别是在第一次实际实施之前还是之后解决?) 数学家如何证明图灵完备的机器确实可以计算一切? 第二个很奇怪。每个形式主义似乎都有一些无法计算的东西。当前,“可计算函数”被定义为 “图灵机可以计算的任何东西”。但是我们怎么知道没有比它稍微强大一点的机器可以计算更多的东西呢?我们怎么知道图灵机是正确的抽象?

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.