联机算法(又叫在线处理,online algorithm)求最大子序列和的证明
2021-03-27 21:26
标签:没有 需要 mat seq 数列 情况 strong int c语言 C语言代码: 求证:这个算法的正确性,即能够求出最后的正确的最大子序列和。 证明: 我们可以取一个通常的待求最大子序列和的数列: \(a_1,a_2,a_3...a_{p-1},a_p,a_{p+1}...a_n\) 这个数列一共有n项,我们可以先排除\(a_1\)为负数的情况,因为这会被自动地归零处理。 然后我们设\(a_p\)为这个序列的第一个断点,就是\(a_p\)之气的所有项之和ThisSum都没有因为序列和变成负数而归零重置过,然后我们将要证的命题进行转化-->我们知道\(a_1\)和\(a_p\)这两个数是可以排除作为新的子序列的起点的,所以,我们只需要证明: 下面我们就用反证法来证明这两点的正确性: 首先,我们要明确一个前提,就是从\(a_1\)到\(a_{p-1}\)之间任何一个以\(a_1\)为起点的子序列的和都是非负数。 到这里,第一个断点之后的情况也显然得证,由此,该待证命题的正确性得证。 感谢我的同学万某,是他与我一起想出并完善了这个证明的证法。 联机算法(又叫在线处理,online algorithm)求最大子序列和的证明 标签:没有 需要 mat seq 数列 情况 strong int c语言 原文地址:https://www.cnblogs.com/fanlumaster/p/13654938.htmlint MaxSubsequenceSum(const int A[], int N)
{
int ThisSum, MaxSum, j;
ThisSum = MaxSum = 0;
for (j = 0; j MaxSum)
MaxSum = ThisSum;
else if (ThisSum
文章标题:联机算法(又叫在线处理,online algorithm)求最大子序列和的证明
文章链接:http://soscw.com/index.php/essay/68750.html