Questions tagged «mathematical-foundations»

有关计算机科学(子领域)与相关数学基础的关系及其应用的问题。

29
为什么写下数学证明比编写计算机代码更能抵御故障?
我注意到,我发现写下数学证明而不犯任何错误要比写下没有错误的计算机程序容易得多。 似乎这不仅仅是我的经验。大多数人在编程时总是会犯软件错误,而且他们让编译器始终告诉他们错误是什么。我从未听说过有人一口气编写大型计算机程序,但一无所错,并且完全相信它不会出错。(实际上,几乎没有任何程序是没有错误的,甚至包括许多高度调试的程序)。 然而,人们可以写整篇论文或数学证明书,而无需任何编译器向他们反馈自己犯错的反馈,有时甚至无法从他人那里得到反馈。 让我清楚一点。这并不是说人们不会在数学证明中犯错误,但是对于即使是有经验的数学家来说,错误通常也不是问题,并且可以在没有诸如编译器指向您的编译器的“外部oracle”帮助下解决。错误。 实际上,如果不是这种情况,那么在我看来数学几乎是不可能的。 因此,这引发了我一个问题:编写无故障的数学证明和编写无故障的计算机代码有什么不同,从而使前者比后者更易于处理? 可以说,事实是人们拥有编译器的“外部预言”,使他们指出自己的错误,这使程序员变得懒惰,从而阻止他们执行严格编写代码所必需的工作。这种观点意味着,如果他们没有编译器,他们将能够像数学家一样完美无缺。 您可能会发现这很有说服力,但是基于我的编程经验和写下数学证明,在我看来,这并不是真正的解释。两项工作似乎在根本上有所不同。 我最初的想法是,可能会有区别,对于数学家来说,正确的证明仅要求每个逻辑步骤都是正确的。如果每个步骤都正确,则整个证明都是正确的。另一方面,要使程序无缺陷,不仅每一行代码都必须正确,而且它与程序中每行其他代码的关系也必须正常工作。 换句话说,如果步骤中证明是正确的,那么在制作工序中的错误不会弄乱一步如初。但是,如果正确记录了一行代码,则在行犯错误将影响行的工作,因此,每当编写行,都必须考虑其与所有其他行的关系。我们可以使用封装以及所有类似的东西来限制这种情况,但是不能完全删除它。XXXÿYYX Y X XXXXXXXÿYYXXXXXX 这意味着检查数学证明中的错误的过程在证明步骤的数量上基本上是线性的,但是检查计算机代码中的错误的过程在代码行数上基本上是指数的。 你怎么看? 注意:该问题有大量答案,可探讨各种事实和观点。在回答之前,请阅读所有内容并仅在有新添加内容时回答。多余的答案或不支持事实的观点的答案可能会被删除。

3
逻辑到底是什么?
道歉可能是要问有关前提条件的另一个问题,但是我对起点感到困惑。我遇到过各种术语,例如“模态逻辑”,“时间逻辑”,“一阶逻辑”,“二阶逻辑”和“高阶逻辑”。 在这种情况下,“逻辑”到底是什么意思?我们如何严格定义“逻辑”一词? 在浏览了几本书的开始部分之后,我可以粗略得出结论:“逻辑是一种从中决定内容的方法,这对设计编程语言非常重要,因为它指示并促进了程序的设计以自动推理和理解程序。我想要稍微详细地了解第二点。 现在来看这些逻辑。 所有这些逻辑(“时间逻辑”,“模态逻辑”,“一阶逻辑”,“高阶逻辑”)是否彼此独立,或者我们需要了解这些逻辑中的几个即可理解该组中的其他逻辑?简而言之,它们的先决条件是什么?(如果我也可以从一些材料中获得建议,那将是很棒的。) PS:非常感谢您的好意

11
为什么计算机科学中的数据被认为是离散的?
我了解数据的“结构”完全取决于布尔代数,但是: 为什么将数据视为离散的数学实体而不是连续的数学实体? 与此相关: 在将数据构造为rrr维中的连续实体时,有哪些缺点或不变性受到侵犯? 我不是该领域的专家,因为我是本科数学学生,所以如果有人像我五岁时那样向我解释这一点,我将非常感激。

2
是否有任何编程语言都使用通用递归函数作为基础?
这是一个幼稚的问题,因此可能是畸形的问题,因此请您提前道歉! 我的观点是,图灵机可以看作是过程/命令式编程语言的计算基础。同样,lambda演算是函数式编程语言的基础。 我最近了解到,Church-Turing论文还显示了与第三种计算模型的等效性:通用递归函数。是否有任何编程语言将其用作其计算模型?如果不是,是否有技术原因?即,除了“没有人尝试过”之外?

6
在理论背景下,计算机科学与数学有何区别?
我是计算机科学专业的大学学生,对数学学习充满热情。我坚信计算机科学或理论计算机科学是数学和逻辑学的直接分支,并且我认为计算机科学学位实际上必须始终以数学为导向。如果我错了,请纠正我。 坦白说,我觉得有没有很多在2个科目差异坦率地说,因为每个“计算”涉及“计算”,虽然每次“计算”可能不是“计算”。再次请提供大量信息和证据,如果我在这里误会了,请及时更新。谢谢

6
线性代数的哪些部分在计算机科学中使用?
我一直在阅读《线性代数及其应用》以帮助理解计算机科学材料(主要是机器学习),但我担心很多信息对CS毫无用处。例如,除非您尝试编写新的方程式求解器,否则了解如何有效地求解线性方程式系统似乎没有什么用。此外,这本书还讨论了跨度,线性相关性和独立性(矩阵有逆的时候)以及它们之间的关系,但是我想不出它在CS中的任何应用。那么,CS中使用线性代数的哪些部分?

3
香农熵为0.922,三个不同的值
给定一串值AAAAAAAABCAAAAAAAABCAAAAAAAABC,对数基数222的Shannon熵 为0.9220.9220.922。据我了解,在基数 222,向上舍入的Shannon熵是二进制中代表单个值之一的最小位数。 摘自此维基百科页面上的介绍: https://en.wikipedia.org/wiki/Entropy_%28information_theory%29 那么,如何用一位来表示三个值呢?AAA 可以是 111,BBB 可以是 000 ; 但是你怎么代表 CCC? 先感谢您。

1
可以提高计算机编程能力的数学主题或领域?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 通常,在算法和计算机编程方面,数学家或具有数学背景的计算机程序员都非常优秀。 我不是在说什么: 数学需要成为一个好的计算机程序员。数学是编程所必需的。好的数学家是好的程序员,反之亦然 我在说什么 我想学习一些数学,因为我相信它将使我成为一个更好的程序员。哪些数学领域/主题将帮助我成为更好的程序员?形式的答案math topic - corresponding cs area将不胜感激。 注意:我在StackOverflow上问过这个问题,它被宣布为题外话。我想在业余时间学习计算机编程一样的方法。提前致谢。

2
数学猜想相当于图灵机的停止
这个问题是关于每个数学定理是否可以简化为单个图灵机是否停止的问题。我特别对目前尚未得到证实的猜想感兴趣。 例如:维基百科说,目前尚不清楚是否有奇数个完美数字。由于可以确定一个给定的数字是否完美,因此可以编写一台图灵机,依次检查每个奇数,并在找到一个完美的数字时暂停。(此图灵机不接受任何输入。)如果我们知道该图灵机是否停止,那么我们将知道该猜想是否成立,反之亦然。 但是,作为另一个示例,双素数猜想呢?一个给定的数字是否是双胞胎对中的第一个素数是可以确定的,但是在这种情况下,我们不能仅在找到第一个对时停止,因为问题在于是否存在一个无限数。对我来说,尚不清楚是否有可能制造出并且仅当双素数猜想为真时才停止的图灵机。 我们可以肯定地使图灵机在且仅当双素数猜想在Peano算术或其他形式系统中可证明时才中止,但这是一个不同的问题,因为这可能是正确的,但在我们选择的特定系统中无法证明。 所以我的问题是 当且仅当双素数猜想为真时,才能使图灵机停止吗?(如果是这样,如何?) 通常,是否有可能使图灵机在且仅当某些给定的数学表达式为真时才停止运行?可以从正式声明中以算法方式构建图灵机吗? 如果通常不可能,是否有某种方法可以将数学语句分类为等同于停止单个Turing机器还是停止具有oracle的图灵机等?如果是这样,对于给定的语句,此分类是否可确定?

2
什么是马尔可夫链?
我目前正在阅读一些有关马尔可夫链集总的文章,但我看不到马尔可夫链与普通有向加权图之间的区别。 例如,在文章“ 马尔可夫链中的最佳状态空间集总”中,它们提供了CTMC(连续时间马尔可夫链)的以下定义: 我们通过转换率矩阵考虑状态空间为的有限CTMC, 其转换速率矩阵为 。(S,Q)(S,Q)(\mathcal{S}, Q)S={x1,x2,…,xn}S={x1,x2,…,xn}\mathcal{S} = \{x_1, x_2, \ldots, x_n\}Q:S×S→R+Q:S×S→R+Q: \mathcal{S} \times \mathcal{S} \to \mathbb{R}^+ 他们根本没有提到马尔可夫特性,实际上,如果边缘的权重代表概率,那么我相信马尔可夫特性微不足道,因为该概率仅取决于链的当前状态,而不取决于导致链的路径。对它。 在关于集总性的关系属性的另一篇文章中,马尔可夫链的定义类似: 马尔可夫链将表示为三元组 ,其中是的有限状态集,是表示从一种状态到另一种状态的概率的转移概率矩阵,而是代表系统在特定状态下启动的可能性的初始概率分布。MMM(S,P,π)(S,P,π)(S, P, \pi)SSSMMMPPPππ\pi 同样,没有提及过去或未来或独立。 第三篇论文《简单O(m logn)时间马尔可夫链集总法》中,他们不仅从未声明边缘的权重是概率,而且甚至说: 在许多应用中,值是非负的。但是,我们不做这个假设,因为在某些应用中故意将选择为,这通常使其为负数。W(s,s′)W(s,s′)W(s, s')W(s,s)W(s,s)W(s, s)−W(s,S∖{s})−W(s,S∖{s})-W(s, S \setminus \{s\}) 而且,有人指出,集总应该是减少状态数量同时保持Markov属性的一种方法(通过将“等效”状态聚合为更大的状态)。但是,对我来说,这似乎只是在简单地对概率求和,甚至不保证从聚合状态到聚合状态的跃迁的概率在范围内。那么,集总实际上保留了什么?[0,1][0,1][0,1] 因此,我看到两种可能性: 我不明白什么是马尔可夫链,或者 在这些论文中使用术语马尔可夫链是伪造的 有人可以澄清情况吗? 看起来确实有不同的社区在使用该术语,它们的含义千差万别。从我认为的这3篇文章看来,马尔可夫特性显得微不足道或毫无用处,而在另一类论文中,它看起来却很基础。
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.