循环不变量(loop invariant)是一个不变量,被用来证明循环的特点,更多地,算法使用循环 (usually 正确性)。非正式的说,一个循环不变量是指在循环开始和循环中每一次迭代时永远为真的量,这意味着在循环中和循环结束时循环不变量和循环终止条件必须同时成立。 由于循环和递归的程序相似的原因,证明带有不变量的循环的部分正确性和证明通过归纳的递归程序的正确性极其相似。事实上,循环不变量通常是一个递归程序可以等价为一个给定循环的递归的属性。
循环不变量外提是一种传统的优化算法。
Loop invariant code motion (LICM) is a traditional optimization.
假设有一个具有互斥分支的循环流;每个分支都有一些应用于该分支中所有活动的前置条件和不变量。
Consider a cyclic flow that has mutually exclusive branches; each branch has preconditions and invariants that apply to all activities in the branch.
使用截断和边带不变量转换,如循环移位等,对初始的CAZAC序列进行修改。
By using truncation and sideband invariant switch like a cyclic shift, etc., the initial CAZAC sequence can be modified.
So this is a nice little search-- sorry, a nice little sort algorithm . And in fact, it's relying on something that we're going to come back to, called the loop invariant.
恩,这是一个很棒的小搜索,抱歉,和很棒的小排序算法,事实上,它依赖于一些我们要回顾的东西,被称作循环不变量。
The loop invariant what does the loop invariant mean? It says, here is a property that is true of this structure every time through the loop.
循环不变量是什么意思?,它是一个在结构体中,每次循环都为真的属性。
But notice unlike a for loop, if you want to declare a variable or increment or decrement to variable, you've got to do that yourself.
但请注意不像for循环,如果你想声明一个变量,或者变大或变小一个变量,你需要自己完成。
应用推荐