算法基础-循环不变量(loop invariant)

举报
dragon-w 发表于 2024/07/12 09:31:47 2024/07/12
【摘要】 ​ Promise.All()    Promise.all()关注多个Promise对象的状态变化,传入多个Promise实例,包装成一个新的Promise实例返回。 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="I...

在计算机科学中,循环不变式(loop invariant,或循环不变量、循环不变条件,也有译作循环不变性),是一组在循环体内、每次迭代均保持为真的性质(表达式),通常被用来证明程式或伪码的正确性(有时但较少情况下用以证明算法的正确性)。简单说来,“循环不变式”是指在循环开始和循环中,每一次迭代时为真的性质。这意味着,一个正确的循环体,在循环结束时“循环不变式”和“循环终止条件”必须同时成立。

--维基百科

循环不变量或者叫循环不变性也是证明算法的正确性的一种方法,《算法导论》中提到利用循环不变量整懵算法正确应该满足3个条件:

  • 初始条件:首次循环前不变性成立
  • 保持条件:一次循环前不变性如果成立,则下次循环开始前不变性成立
  • 终止条件:循环结束后,循环不变性应能表明程序的正确性

循环不变式的书写方法:

  • 定义循环不变式,并在循环体每次结束后保持循环不变式
  • 先一般,后特殊
  • 每次必须向前推进循环不变式中涉及的变量值 
  • 每次推进的规模必须为1
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。