Мне дали следующую задачу об инвариантах цикла:
Рассмотрим
x=4;
for(i=5;i<k;i++) {
a=a+x+i;
x=x*2;
}
Определите инвариант подходящего цикла, который использует замкнутую формулу для a и x.
Теперь,
Как вы знаете, у вас есть правильный инвариант цикла здесь? Я имею в виду, что вы можете установить инвариант цикла следующим образом:
«На j-й итерации« x »меньше, чем« a »», что будет правильно, но не будет использовать какие-либо замкнутые формулы, верно?
Как можно использовать оператор (инвариант цикла), чтобы определить значение "a", когда цикл закончен?
Все примеры, которые я видел, просто устанавливают инвариант цикла и он не используется в качестве замкнутой формулы.
Есть идеи?
Спасибо за вашу помощь.