正确性 (计算机科学)

✍ dations ◷ 2025-10-28 08:24:56 #理论计算机科学

在理论计算机科学中,算法的正确性(英语:correctness)是指一个算法在程序规范下被认定为正确的判定。其中,正确(英语:functional correctness)针对输入输出的行为(例如:对每一个输入,算法都能给出预期的输出)。

人们将正确性分为两类。一类被称为部分正确性(英语:partial correctness),它要求在算法返回结果时这一结果是正确的;另一类被称为完全正确性(英语:total correctness),它在部分正确性的基础之上还要求算法必须能够结束。由于对于停机问题没有通用的解决方案,因此判定完全正确性的断言有着更多需要深层次研究的地方。终止的证明是指一类数学证明,因为完全正确性需要证明一个算法会终止,所以它在程序的形式验证中起着至关重要的作用。

例如考虑这样一个问题:依次搜索整数列1, 2, 3, …来看是否存在某个特定现象——比如说存在一个奇数为完全数。对于这个问题而言,我们很容易写出一个部分正确的程序(直接对于每个数字做长除法判定其是否完全)。然而如果我们想证明这个程序是完全正确的,那就相当于我们在断言一个在数论里目前还未知的结论。

在算法和程序规范都是基于形式化来给出时,对正确性的证明应当为一个数学证明。然而我们并不期待能够给出特定机器上实现的特定程序的正确性断言,因为那样将需要考虑诸如内存限制在内的更多问题。

证明论中有一个结论柯里-霍华德同构。这一结论认为:任意一个在构造性逻辑下的功能正确性的证明都对应了一个λ演算程序。这种转换证明的方式被称为(英文:program extraction)。

霍尔逻辑是一个具体的能够严密验证程序正确性的形式系统。它用一系列的公理来定义程序语言的语义,从而通过称之为霍尔三元组的断言来验证程序的正确性。

软件测试是指验证一个程序或系统的某些属性或能力来判断它是否达到预期目的的行为。尽管软件测试在软件质量方面起着至关重要的作用,并且被程序员和测试员们广泛采用,但由于人们对软件的认识十分有限,它仍旧是一个艰深的领域。软件测试的最大难点在于如何控制其复杂性:我们没有办法在一个合理的复杂度内完整地测试一个程序。测试不只是调试。测试的目的包括但不限于确保软件质量、验证其正确性和估算其稳定性。我们对测试的定义也可以更加一般化,其中正确性测试和稳定性测试是两个最大的研究领域。软件测试是预算、时间和软件质量的一个平衡。

相关

  • 232.0377(4)6d2 7s22, 8, 18, 32, 18, 10, 2蒸气压第一:587 kJ·mol−1 第二:1110 kJ·mol−1 第三:1930 kJ·mol主条目:钍的同位素.mw-parser-output ruby>rt,.mw-parser-o
  • 贾思勰贾思勰(?-?),齐郡益都县(今山东省寿光市西南),北魏农学家,官至高阳郡太守(今山东省淄博市临淄区一带)。他精通农业科学,在复兴由于战乱而荒废的华北农业时,将旱地农业技术体系化,于北魏末年
  • 卡方检验卡方检验(Chi-Squared Test或 χ 2 {\displaystyle \chi ^{2}} Test)
  • 坚尾龙类Avipoda Novas, 1992坚尾龙类(学名:Tetanurae)是个演化支,包含大部分的兽脚亚目恐龙(也包含恐龙的后代鸟类)。坚尾龙类首次出现于侏罗纪早期或中期。许多著名的恐龙属于坚尾龙类,包
  • 刘逢禄刘逢禄(1776年-1829年),字申受,一字申甫,号思误居士。江苏武进(今属常州市)人,清朝翰林,政治人物,儒学学者,专长《春秋公羊传》。逢禄覆书:“后夔典乐,犹有朱、均;吕望陈书,难匡管、蔡。”礼
  • 科米人科米人是俄罗斯少数民族之一,主要居住在俄罗斯科密共和国、彼尔姆边疆区、摩尔曼斯克州和汉特-曼西自治区,人口15,607的北方部族过着传统的自给自足生活。科米-彼尔米亚克人则
  • 黑鬼黑鬼(英语:Nigger),华人社会有时会音译为尼哥,是对黑人的贬称,是一种禁忌称呼。在美国,“黑鬼”是种族歧视用语,非黑人族群视之为严重禁忌,尤其白人(因历史原因),绝对不能使用,容易导致纷
  • 半乳糖-1-磷酸半乳糖-1-磷酸(英语:Galactose-1-phosphate)是一种半乳糖的代谢中间产物。它由半乳糖激酶催化半乳糖生成。尿苷二磷酸半乳糖 · 尿苷二磷酸葡萄糖医学导航:遗传代谢缺陷代谢、
  • 科蒂安山科蒂安山(法语:Alpes Cottiennes,.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium"
  • 大姬兜虫大姬兜虫(学名:),又称为大木犀金龟、双角仙、巨无霸姬兜虫或姬兜虫,是一种体型较大的木犀金龟属甲虫。雄性成虫体长约31到62mm,雌性则为31到40mm,比独角仙略小一号。由于胸角与独角