计算机科学

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

5
将元素添加到排序数组
最快的方法是什么(从算法的角度以及实际的角度来看)? 我在按照以下思路思考。 我可以添加到数组的末尾,然后使用Bubblesort,因为它的最佳情况(开始时是完全排序的数组)接近于此,并且具有线性运行时间(最佳情况)。 另一方面,如果我知道我是从排序数组开始的,则可以使用二进制搜索来查找给定元素的插入点。 我的直觉是,第二种方法几乎是最优的,但好奇地想知道那里有什么。 如何最好地做到这一点?


7
停止问题和热力学熵之间有联系吗?
艾伦·图灵(Alan Turing)提出了一种用于计算机(图灵机,TM)的模型,该模型可以进行计算(数字,函数等),并证明了Halting定理。 TM是机器(或引擎)的抽象概念。停止定理是不可能的结果。卡诺发动机(CE)是热机的抽象概念,卡诺证明了卡诺定理,这是与热力学熵有关的另一种不可能的结果。 假设TM在物理上是可以实现的(至少与CE一样多,或者可能不是?),是否存在TM或CE的映射或表示或“同构”,可以统一这些结果,并且还可以与熵联系起来? 当然,在算法信息论(例如Chaitin,Kolmogorov等)和熵(在这种情况下)方面,有TM和Halting定理的表述。这个问题要求一个更物理的熵概念(如果在潜在答案的过程中出现了算法熵,那很好,但是这并不是问题的确切含义)。 人们还可以检查Phys.se中的另一个问题,该问题将量子不确定性与热力学第二定律联系起来。另请参阅:熵的代数表征,熵的算法表征,熵的各种公式之间的回顾和联系

8
成为一个不了解计算复杂性的程序员是否有问题?
我在大学里分配了一个练习。我把它带回家并尝试编写一种算法来解决它,我想这与图有关,可以找到连接的组件。 然后,我想到了最琐碎的事情,然后告诉我的讲师。经过简短的观察,他认为我的解决方案的运行时复杂性是不可行的,并显示出一些更有效的方法。而且有一种传统的程序员不知道什么是计算复杂性(我就是其中之一),所以如果程序员不知道什么是计算复杂性会存在问题吗?


4
我可以在酒吧中提出一个极其基本的非对称密码?
我正在尝试向父母解释比特币的基本知识。 比特币的核心组成部分之一是对交易进行签名以确保您的身份不会被假冒,因此需要解释简化的非对称密码。 我可以使用一个非常简单的非对称密码作为示例吗? 如何将这种简化的密码用于签名?


9
解释计算机科学和计算机素养之间的区别
用什么很好的比喻或例子向英语专业解释经典计算机科学与“善于使用MS-Windows”之间的区别 计算机科学 电脑编程 使用电脑 3完全不同的事物。大多数人甚至不知道什么是计算机科学。他们只看到“计算机”一词。因此,“他是计算机科学专业”可以解释为“他可以连接我的打印机”。还是说他“擅长电脑”。几乎没有人知道计算机编程和计算机科学之间的区别。 计算机科学是计算理论。无需实际计算机即可学习CS。CPU微型架构。如何对数字进行排序,如何遍历列表等。状态机。算法,big(Oh)等。如何设计编程语言或编译器。 编程是使用计算机科学家创建的语言和编译器来编写代码并创建应用程序。 最后,使用计算机(使用GUI,鼠标和键盘,Internet,MS-Office等) 然而,这三者被外行互换使用。 什么是向英语专业解释经典计算机科学与“擅长使用MS-Windows”之间的区别的好比喻或示例?或者简单地,一个真实的计算机科学与MS-Windows无关的精妙示例。

2
功能反应式编程和Actor模型如何相互关联?
FRP是关于通过纯函数流式传输事件和行为。Actor模型-至少在Akka中实现-是关于通过可能不纯的对象(称为actor)流式传输不可变消息(可以认为是离散事件)。 因此从表面上看,它们似乎相关。 关于它们之间的关系,我们还能说些什么?另外,对于其中哪一个可能更适合于不同的应用程序域又能说些什么呢?

2
量子TM和非确定TM有什么区别?
我正在讨论关于如何定义量子图灵机的问题。我觉得量子TM和非确定 TM是一模一样的。另一个问题的答案与此无关。这两个模型是一模一样的吗? 如果不, Quantum TM和NDTM有什么区别? 有没有NDTM比Quantum TM更快的计算? 如果是这种情况,那么Quantum TM是DTM,那么为什么对此技术有如此多的疑问,我们已经有那么多DTM。为什么最后要设计一个新的DTM?

1
哈希表与二叉树
当实现字典时(“我想通过他们的客户ID查找客户数据”),使用的典型数据结构是哈希表和二进制搜索树。例如,我知道C ++ STL库使用(平衡的)二进制搜索树实现字典(它们称为地图),而.NET框架在后台使用哈希表。 这些数据结构的优缺点是什么?在某些情况下还有其他合理的选择吗? 请注意,对于键具有强大的基础结构的情况,例如,它们都是1到n之间的整数或类似的东西,我并不特别感兴趣。

5
含义:“'如果很难分解大整数,那么很难破解RSA',未经证实”
我正在阅读CLRS,并说: 如果分解大整数很容易,那么破坏RSA密码系统就很容易。 这对我来说很有意义,因为有了ppp和的知识,就很容易创建公开密钥知识的秘密密钥。不过,它解释了相反的陈述,我不太了解:qqq 相反的说法,即如果很难分解大整数,那么很难破解RSA。 以上声明的正式含义是什么?如果我们假设分解很困难(以某种正式方式),那为什么不意味着破坏RSA加密系统很难呢? 现在考虑一下,如果我们假设分解是困难的……并且我们发现它意味着RSA密码系统很难破解。这正式意味着什么?

1
赖斯非语义定理
赖斯定理告诉我们,我们可以决定的图灵机的唯一语义属性(即由机器计算的函数的属性)是两个琐碎的属性(即始终为true和始终为false)。 但是,图灵机还有其他无法确定的属性。例如,在给定的图灵机中存在不可达状态的属性是不确定†。††^{\dagger} 是否有与赖斯定理相似的定理,将相似性质的可判定性分类?我没有确切的定义。涵盖我所举示例的任何已知定理对我而言都将是有趣的。 ††^\dagger使用Kleene的递归/固定点定理很容易证明此集合是不确定的。

2
Büchi自动机和线性微积分的等价性
众所周知,每个LTL公式都可以由Büchi -automaton表示。但是,很明显,Büchi自动机是一种功能更强大的表达模型。我在某处听说过Büchi自动机等效于线性时间 -calculus(即具有常规固定点且只有一个时间运算符 -calculus )。μ μ Xωω\omegaμμ\muμμ\muXX\mathbf{X} 是否存在这种相等性的算法(构造证明)?

2
编程语言和数学基础如何关联?
基本上我知道数学的三个基础 集合论 类型理论 范畴论 那么编程语言和数学基础在哪些方面相关? 编辑 最初的问题是“基于数学基础的语言编程” 与添加的paragarph 理论的实现 1. Coq中的类型论 2. SETL中的 集合论3. Haskell中的范畴论 根据建议,该内容已更改为“编程语言和数学基础如何相关” 由于这是我不知道所要问的问题但想学习一些东西的问题之一,因此,我正在修改问题以使其对学习和其他人更有价值,但又保留了细节以免安德烈·鲍尔(Andrej Bauer)当前的答案似乎不合时宜。 感谢到目前为止的所有评论和答复,我正在向他们学习。

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.