Hallo,
Ik moet al oefening een correctheidsbewijs opstellen voor een programma dat uit een rij de maximale deelrijsom berekend.
De programmeertaal is java.
public int maxSomV3()
int maximum = 0; int maxtotgrens = 0;
int a =0;
while( a!= r.lenght)
{ maxtotgrens = Math.max(0, maxtotgrens+r[a]);
maximum = Math.max( maximum, maxtotgrens);
a++;
}
return maximum;
}
Ik heb al gedacht om de invariant in deze vorm te schrijven : maximum = Math.max( maximum , Math.max(0,maxtotgrens+r[a]))
Maar ik zie niet in hoe ik het zou moeten bewijzen.
Alle hulp is alvast welkom.