假设这个算法给出了一个子数组的最大和。并设 a[] 为长度为 n 的数组。
randmax = 0
maximum = 0
for 0 <= i < n
randmax = randmax + a_i
if randmax > max
max = randmax
if randmax < 0
randmax = 0
我怎样才能找到一个循环不变量,它在执行之前,当然在循环迭代之前和之后都成立,当 n-1 时,不变量应该暗示正确的解决方案。
假设这个算法给出了一个子数组的最大和。并设 a[] 为长度为 n 的数组。
randmax = 0
maximum = 0
for 0 <= i < n
randmax = randmax + a_i
if randmax > max
max = randmax
if randmax < 0
randmax = 0
我怎样才能找到一个循环不变量,它在执行之前,当然在循环迭代之前和之后都成立,当 n-1 时,不变量应该暗示正确的解决方案。