Как стать автором
Обновить

Комментарии 20

(a != 0 or n != 0) — здесь разве не and должен быть?
он уже в RO :)
00 — математическая неопределённость,
01, 10 — можно вычислить
Если бы я не знал троек Хоара, то бы ничего из этой статьи не понял.

Кстати, алгоритм быстрого возведения в степень куда проще объясняется при помощи инварианта, чем тройками Хоара.
Не удивительно, последовательное изложение этой темы занимает половину семестра.
Тогда видимл автору нужно было писать цикл статтей, а не сухую заметку на полях.
А разве тут инвариант не указан в комментарии к коду?
Указан, да не совсем он. Автор определяет инвариант цикла как некоторое высказывание, верное на каждой итерации: a0**n = r * a**n

При использовании метода инварианта, инвариант — это любое математическое выражение, которое сохраняет свое значение на каждой итерации: r * a**n = const
Может я еще не проснулся, но все-таки приведите, пожалуйста, ваш инвариант, после которого я бы по вашему утверждению быстрее все понял.
Я его привел.
И почему же выражение a0^n0 не подходит на роль константы?
На лекциях по Computer Science в 1999-м году в СГУ «логику Хоара» нам преподавали под названием «теория аксиоматической верификации программ». А на практике предупреждали, что это «университетское программирование, которое в жизни не встретить и не очень нужно» :)

А Вы используете его в какого рода проектах, и в каком объеме — в каких-то критических участках кода я полагаю?

Какой-то сухой конспект лекции из универа. Ничего сходу не понятно.
Я тут не поленился и заглянул в приведенную в начале статьи ссылку на википедию. Ваша статья скопирована из википедии чуть менее чем полностью.
Кстати, вплоть до грамматических ошибок: «цикл будет выполнятся»
но надо отдать должное, примеры по разворачиванию рекурсии на мой взгляд хороши
Интересующимся могу посоветовать статью про бинарный поиск из Programming Pearls Бентли (Жемчужины программирования). Бентли горячо рекомендовал The Science of Programming, предисловие к которой написал Dijkstra. Книга довольно интересная, но её сложно назвать лёгким чтивом.
НЛО прилетело и опубликовало эту надпись здесь
Ждаль джва раза… Вообще, по-моему, очень понятно. Нужно просто уметь разворачивать рекурсию в цикл. Хотя должно быть наоборот ,) Не умеешь, прочитал и что-то понял.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории