我问题的一部分是最小化某些数字的加权和的绝对值。我必须找到重量。
假设我有一组A,a1,a2,a3和a4,使得(a1,a2 > 0),(a3,a4 < 0)
最小重量为0.1 (10%),最大为0.4 (40%)。我在寻找权重w,其方式是加权和为零;如果不可能为零,则最接近于零。可以使用一个简单的线性模型来实现这一点:
Minimise E
E >= SUM w * a
E >= -(SUM w * a)
SUM w = 1
w >= 0.1 for all w
w <= 0.4 for all w
一个简单的线性规划就足以很快地找到解。但是,我非常想找到
此函数以递归方式从包含整数元素的数组中查找并返回最小的元素
Min(A, b, e)
if (b=e)
return A[b]
m = (b+e)/2 // floor is taken
x = Min(A, b, m)
y = Min(A, m +1, e)
If(x < y)
return x
else
return y
我的前提条件是:b和e是大于零的整数
我的post条件是:返回一个x或y的整数(不确定这一点)
那么,我如何通过证明前置条件和后置条件是归纳的来证明这是正确的呢?
对于这种格式,我很抱歉,这是新手。