Доказательство алгоритма вычисление многочлена
От: Stgl  
Дата: 01.03.15 17:45
Оценка:
Есть многочлен P(x) = a n * x n + a n — 1 * x n — 1 + ... + a 1 * x + a 0
Есть псевдокод, вычисляющий этот многочлен:
function horner(A, x)
    p = A n
    for i from n - 1 to 0
        p = p * x + A i
    return p

Нужно доказать правильность этого алгоритма.
Я делаю это так: инвариант цикла будет (P = P * x + A i) and (n — 1 >= i >= 0). Инвариант будет истинным перед каждой итерацией. Условие завершение цикла i < 0, что у нас в коде достигается. Так как инвариант и условие завершение цикла истинны, то наш код правильный.
Здесь есть ошибки?
Отредактировано 01.03.2015 19:42 Stgl . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.