计算机科学

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

9
随着问题的增加,是否有任何变得容易的问题?
这可能是一个荒谬的问题,但是随着输入量的增加,是否有可能实际上变得更容易解决的问题?我怀疑是否存在任何实际问题,但是也许我们可以发明具有这种性质的退化问题。例如,当它变大时,它可能开始“自我解决”,或者表现为其他怪异的方式。

6
为什么我们不合并随机数生成器?
在许多应用中使用伪随机数生成器。因此人们实施了他们认为很棒的方法,后来才发现它有缺陷。最近,JavaScript随机数生成器发生了这种情况。RandU也早得多。还存在诸如Twister之类的不当初始播种的问题。 我找不到任何人将两个或多个生成器族与通常的xor运算符结合在一起的示例。如果有足够的计算机功能来运行java.SecureRandom或Twister实现之类的东西,为什么人们不将它们结合起来?ISAAC xor XORShift xor RandU应该是一个很好的例子,在这里您可以看到单个发电机的弱点正在被其他发电机减轻。由于内在算法完全不同,因此还应有助于将数字分配到更高的维度。是否有一些不应该将它们结合在一起的基本原则? 如果您要构建一个真正的随机数生成器,人们可能会建议您结合使用两个或多个熵源。我的例子不同吗? 我排除了几个线性反馈移位寄存器来自同一家族的共同示例。

6
分布式与并行计算
我经常听到人们谈论并行计算和分布式计算,但是我给人的印象是两者之间没有明确的界限,人们往往很容易混淆这一点,尽管我相信这是非常不同的: 并行计算与多线程或如何充分利用单个CPU紧密结合。 分布式计算是指分而治之的概念,即在不同的计算机上执行子任务,然后合并结果。 但是,自从我们迈入大数据时代以来,这种区别似乎确实正在消失,并且当今大多数系统都使用并行计算和分布式计算的组合。 我在日常工作中使用的示例是具有Map / Reduce范式的Hadoop,它是一个分布清晰的系统,其工作人员在不同的计算机上执行任务,但也充分利用了每台计算机的并行计算优势。 我想征询一些建议,以了解如何在当今世界中真正实现区分,以及我们是否仍然可以谈论并行计算还是不再存在明显的区分。在我看来,分布式计算在过去几年中增长了很多,而并行计算似乎停滞了,这可能可以解释为什么我听到了更多关于分布式计算而不是并行化的讨论。

10
人类的计算能力:人类可以决定图灵机上的暂停问题吗?
我们知道(图灵机上的)暂停问题对于图灵机是无法确定的。有一些研究人的大脑能够如何处理这个问题,可能帮助通过图灵机或通用计算机? 注意:显然,从最严格的意义上讲,您总是可以拒绝,因为图灵机是如此之大,以至于在一个人的生命周期中都无法读取。但这是一个荒谬的限制,对实际问题没有帮助。因此,为了使事情变得均匀,我们必须假设人类具有任意的寿命。 因此,我们可以问:给定图灵机T以任何合适的方式表示,任意寿命的人类H和任意数量的缓冲区(即纸和笔),H可以决定T是否停止该空单词吗? 推论:如果答案是肯定的,那么如果任何一台计算机都有机会通过图灵测试,这是否还会解决?


8
对数复杂度的算法直觉
我相信我对,和这样的复杂性有一定的了解。Θ (n )Θ (n 2)O(1)O(1)\mathcal{O}(1)Θ(n)Θ(n)\Theta(n)Θ(n2)Θ(n2)\Theta(n^2) 就列表而言,是一个常量查找,因此它只是成为列表的开头。 是我遍历整个列表的位置,而对于列表中的每个元素遍历该列表一次。Θ (n )Θ (n 2)O(1)O(1)\mathcal{O}(1)Θ(n)Θ(n)\Theta(n)Θ(n2)Θ(n2)\Theta(n^2) 除了只知道位于和之间,有没有类似的直观方法来掌握它?Θ(logn)Θ(log⁡n)\Theta(\log n)Θ (n )O(1)O(1)\mathcal{O}(1)Θ(n)Θ(n)\Theta(n)

3
在零一整数线性编程(ILP)中表达布尔逻辑运算
我有一个带有一些表示布尔值的变量的整数线性程序(ILP)xiX一世x_i。的xiX一世x_i的被约束为整数并保持0或1(0≤xi≤10≤X一世≤1个0 \le x_i \le 1)。 我想使用线性约束对这些0/1值的变量表示布尔运算。我怎样才能做到这一点? 更具体而言,我想设置(布尔AND),ÿ 2 = X 1 ∨ X 2(布尔OR),和ÿ 3 = ¬ X 1(布尔非)。我使用0/1的明显解释为布尔值:0 =否,1 =否。如何编写ILP约束以确保y i与x i相关联?y1=x1∧x2ÿ1个=X1个∧X2y_1 = x_1 \land x_2y2=x1∨x2ÿ2=X1个∨X2y_2 = x_1 \lor x_2y3=¬x1ÿ3=¬X1个y_3 = \neg x_1yiÿ一世y_ixiX一世x_i (这可以被视为要求将CircuitSAT简化为ILP,或者要求将SAT表示为ILP的方法,但是在这里,我想看到一种编码上述逻辑运算的显式方法。)


4
为什么最好在散列函数中使用质数作为mod?
如果我有一个从1到100的键值列表,并且想将它们组织成11个存储桶的数组,那么我会被教导如何形成mod函数 H=kmod 11H=kmod 11 H = k \bmod \ 11 现在,所有值将在9行中一个接一个地放置。例如,在第一个存储桶中将有0,11,22…0,11,22…0, 11, 22 \dots。在第二个中,将有1,12,23…1,12,23…1, 12, 23 \dots等。 假设我决定成为一个坏孩子,并使用非质数作为我的哈希函数-以12为例。使用哈希函数 H=kmod 12H=kmod 12 H = k \bmod \ 12 会导致哈希表的值在第一个存储桶中为0、12、24 0,12,24…0,12,24…0, 12, 24 \dots ,在第二个存储桶中为1、13、25 1,13,25…1,13,25…1, 13, 25 \dots等,依此类推。 本质上,它们是同一件事。我没有减少冲突,也没有通过使用质数哈希码更好地进行扩展,而且我看不出它有什么好处。


9
建设性的证明对现实世界有何影响?
我对问题有一个高级了解,并且我理解,如果使用所提供的解决方案绝对可以“证明”它为真,那么它将为解决计算机科学领域的众多问题打开大门。P= NPP=NPP=NP 我的问题是,如果有人要发布无可争议的建设性证据,那么我们会发现这种发现有哪些直接影响? P= NPP=NPP=NP 我并不是要对5到10年后的世界情况发表看法。相反,据我了解,这是一个根本无法解决的问题,它可能会从根本上改变我们的计算方式……很多事情(是的,这就是我的无知所在……),我们今天不容易计算。 全面,准确和建设性的证明将对实际世界产生什么样的近乎直接的影响?P= NPP=NPP=NP

6
如果每个人都相信P≠NP,为什么每个人都对P≠NP的​​举证尝试表示怀疑?
许多人似乎相信,但许多人也认为这不可能被证明。这有没有矛盾之处?如果您认为这样的证明是不可能的,那么您还应该认为缺少针对P ≠ N P的合理论据。或者有类似的说法,P ≠ N P不太可能是P ≠ N P,这是因为黎曼假设适用于大数,或者存在距离很小的现有质数的很高的下界。双素猜想?P≠NPP≠NPP\ne NPP≠NPP≠NPP\ne NPP≠NPP≠NPP\ne NP


9
什么是安全的编程语言?
安全编程语言(PL)越来越流行。我想知道安全PL 的正式定义是什么。例如,C是不安全的,但是Java是安全的。我怀疑应该将“安全”属性应用于PL实施,而不是PL本身。如果是这样,让我们​​讨论安全PL实现的定义。我自己尝试将该概念形式化的结果很奇怪,所以我想听听其他意见。请不要说每个PL都有不安全的命令。我们总是可以选择一个安全的子集。


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.